假设我有
project
|__ utilities
| |__ foo.py
|
|__ boost_extensions
| |__ myclass.cpp
| |__ myclass.so
|
|__ someotherstuff
| |__ bar.py
|
|__ mylib.py
|
|__ __main__.py
可以在main.py中执行类似操作吗
import .utilities.foo as Foo
# this function will pass Foo to C++ and initialize it to a global variable
initCppFunction(Foo)
我已经尝试过了,但是它给了我一个无效的语法错误(我尝试这么做是因为从boost/python导入python模块时出现了一些问题)。有办法做到这一点吗
谢谢
我认为这里的问题是这些文件夹中都没有
__init__.py
,无论是project
文件夹还是utilities
或boost_extensions
或someotherstuff
为了让Python知道您希望能够进行导入,它必须知道有一组完整的代码,称为包。您可以将
__init__.py
文件放在任何您想要形式化的地方,并告诉Python“这是一个相关代码包”https://docs.python.org/3/reference/import.html#regular-packages
编辑
第一个答案也提出了一个很好的观点,即您认为
from x.y import z
是正确的语法编辑2
克里希南是完全正确的。
__init__.py
文件中不需要任何内容。如果需要,您可以将代码放入其中,但这根本不是必需的使用
from.utilities将foo作为foo导入
相关问题 更多 >
编程相关推荐