在项目中导入 - 模块不工作
Importing within project - modules not working
我有一个具有当前结构的项目,但我 认为 应该可以的时候,我的一些导入却无法正常工作。由于文件夹已正确标记为模块,这些导入是否应该起作用?
foo
├── app
│ ├── app.py
│ ├── folder1
│ │ ├── aaa.py
│ │ └── __init__.py
│ ├── folder2
│ │ ├── bbb.py
│ │ ├── __init__.py
│ ├── folder3
│ │ ├── ccc.py
│ │ ├── __init__.py
│ ├── __init__.py
│ └── main.py
├── README.md
└── .gitignore
作品
aaa.py
class X():
pass
main.py
from folder1.aaa import X
密码:foo 文件夹
CMD: python app/main.py
不起作用
aaa.py
class X():
pass
main.py
from app.folder1.aaa import X
密码:foo 文件夹
CMD: python app/main.py
Traceback (most recent call last):
File "foo/app/main.py", line 1, in <module>
from app.folder1.aaa import X
ModuleNotFoundError: No module named 'app'
不起作用
aaa.py
from app.folder2.bbb import Y
class X(Y):
pass
bbb.py
class Y():
pass
main.py
from folder1.aaa import X
密码:foo 文件夹
CMD: python app/main.py
File "foo/app/folder1/aaa.py", line 1, in <module>
from app.folder2.bbb import Y
ModuleNotFoundError: No module named 'app'
Python 导入通过搜索 sys.path 中的路径来工作。
通过运行下面的代码
检查应用是否被添加到sys.path
import sys
print(sys.path)
如果此列表中不存在,请通过包含应用程序目录来附加 sys.path。
import sys
import os
current_loc = os.path.realpath(__file__)
parent_dir = os.path.dirname(os.path.dirname(current_loc))
sys.path.append(parent_dir)
我有一个具有当前结构的项目,但我 认为 应该可以的时候,我的一些导入却无法正常工作。由于文件夹已正确标记为模块,这些导入是否应该起作用?
foo
├── app
│ ├── app.py
│ ├── folder1
│ │ ├── aaa.py
│ │ └── __init__.py
│ ├── folder2
│ │ ├── bbb.py
│ │ ├── __init__.py
│ ├── folder3
│ │ ├── ccc.py
│ │ ├── __init__.py
│ ├── __init__.py
│ └── main.py
├── README.md
└── .gitignore
作品
aaa.py
class X():
pass
main.py
from folder1.aaa import X
密码:foo 文件夹
CMD: python app/main.py
不起作用
aaa.py
class X():
pass
main.py
from app.folder1.aaa import X
密码:foo 文件夹
CMD: python app/main.py
Traceback (most recent call last):
File "foo/app/main.py", line 1, in <module>
from app.folder1.aaa import X
ModuleNotFoundError: No module named 'app'
不起作用
aaa.py
from app.folder2.bbb import Y
class X(Y):
pass
bbb.py
class Y():
pass
main.py
from folder1.aaa import X
密码:foo 文件夹
CMD: python app/main.py
File "foo/app/folder1/aaa.py", line 1, in <module>
from app.folder2.bbb import Y
ModuleNotFoundError: No module named 'app'
Python 导入通过搜索 sys.path 中的路径来工作。 通过运行下面的代码
检查应用是否被添加到sys.pathimport sys
print(sys.path)
如果此列表中不存在,请通过包含应用程序目录来附加 sys.path。
import sys
import os
current_loc = os.path.realpath(__file__)
parent_dir = os.path.dirname(os.path.dirname(current_loc))
sys.path.append(parent_dir)