使用非常简单的文件结构导入时遇到麻烦。
我的文件结构如下:
project/
...
project.py
helper.py
__init__.py
...
在project.py中,这是我要在帮助程序中导入的类
#project.py
class MyAPIOne():
...
class MyAPITwo():
...
#helper.py
import MyAPIOne
if __name__ == "__main__":
api = MyApiOne()
...
与python3 helper.py
一起运行时:
如果我保留绝对导入import MyAPIOne
,我将收到ModuleNotFoundError: No module named 'MyAPIOne'
如果我将其更改为相对导入from . import MyAPIOne
,则会收到ImportError: cannot import name 'MyAPIOne'
我还尝试过将所有目录附加到sys.path
上,但是没有运气。
答案 0 :(得分:0)
如果您正在project
文件夹中运行此脚本,则可以通过以下方式更改导入:from project import MyAPIOne
。
另外,您可以将此文件夹添加到您的PYTHONPATH
env变量中。
更新:要向PYTHONPATH添加一些文件夹,您可以运行
export PYTHONPATH="${PYTHONPATH}:/my/other/path"
答案 1 :(得分:-1)
主文件可以导入所有文件,但是其他文件不能导入主文件。
一旦用 __ name__ =“ __main __” 提及的文件,便成为主文件。因此helper.py充当主文件。它无法导入。