如何将 [.myfolder.pyfile] 导入为 [其他]?

how can I import [.myfolder.pyfile] as [something else]?

假设我有

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 import foo as Foo

我认为这里的问题是 none 这些文件夹中有 __init__.py,要么是 project 文件夹,要么是 utilitiesboost_extensionssomeotherstuff.

为了让 Python 知道您希望能够进行导入,它必须知道有一整组代码,称为包。您可以通过将 __init__.py 文件放在您想要形式化的任何地方并告诉 Python “这是一组相关代码”来做到这一点。

https://docs.python.org/3/reference/import.html#regular-packages

编辑

第一个答案也提出了一个很好的观点,你 from x.y import z 作为正确的语法。

编辑 2

克里希南完全正确。 __init__.py 文件不需要包含任何内容。如果需要,您可以将代码放入其中,但这根本不是必需的。