Python 如何将[.myfolder.pyfile]导入为[其他内容]?
假设我有Python 如何将[.myfolder.pyfile]导入为[其他内容]?,python,python-3.x,import,python-import,boost-python,Python,Python 3.x,Import,Python Import,Boost Python,假设我有 project |__ utilities | |__ foo.py | |__ boost_extensions | |__ myclass.cpp | |__ myclass.so | |__ someotherstuff | |__ bar.py | |__ mylib.py | |__ __main__.py 可以在main.py中执行类似操作吗
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模块时出现了一些问题)。有办法做到这一点吗
谢谢使用
from.utilities将foo作为foo导入
从.utilities导入foo作为foo我认为这里的问题是这些文件夹中没有
\uuuu init\uuuuuuuuy.py
,无论是项目
文件夹还是utilities
或boost\u扩展
或其他东西
为了让Python知道您希望能够进行导入,它必须知道有一组完整的代码,称为包。您可以通过将\uuuu init\uuuu.py
文件放在任何您想要形式化并告诉Python“这是一个相关代码包”的地方来实现这一点
编辑
第一个答案也提出了一个很好的观点,即您可以从x.y导入z作为正确的语法
编辑2
克里希南是完全正确的。
\uuuu init\uuuu.py
文件中不需要任何内容。如果你愿意,你可以把代码放进去,但这根本不是必需的。我认为这里的问题是这些文件夹中都没有\uuu init\uuuuuuuuuy.py
文件夹,或者项目
文件夹,或者实用程序
或者boost\u扩展
或者其他东西
为了让Python知道您希望能够进行导入,它必须知道有一组完整的代码,称为包。您可以通过将\uuuu init\uuuu.py
文件放在任何您想要形式化并告诉Python“这是一个相关代码包”的地方来实现这一点
编辑
第一个答案也提出了一个很好的观点,即您可以从x.y导入z作为正确的语法
编辑2
克里希南是完全正确的。
\uuuu init\uuuu.py
文件中不需要任何内容。如果需要,您可以将代码放入其中,但这根本不是必需的。为了澄清,这些init文件可以完全为空,只告诉Python它是一个模块。为了澄清,这些init文件可以完全为空,只告诉Python它是一个模块。