我正在尝试从不同的项目导入包,但它无法识别我尝试从中导入的项目。我已经查看了这个问题的各种答案(包括python: import another project module named same with a local module)。
我的项目结构如下所示:
Project1
- __init__.py
- foo_directory
- foo.py
- __init__.py
Project2
- __init__.py
-bar_directory
- bar.py
- __init__.py
Run Code Online (Sandbox Code Playgroud)
在 bar.py 中我试图这样做:
import sys
sys.path.append('path/to/Project2')
from Project1.foo_directory import foo.py
Run Code Online (Sandbox Code Playgroud)
我不明白为什么当我尝试导入时它无法识别 Project1?
2 解决方案:
1-使用 PYTHONPATH 环境变量。请参阅此答案以了解更多详细信息
$ export PYTHONPATH=$(PYTHONPATH):/path/to/project1
Run Code Online (Sandbox Code Playgroud)
2 - 为您的项目创建一个 setup.py 以便您可以安装它们,然后导入它们>
https://docs.python.org/3/distutils/setupscript.html
注意:从应用程序内部弄乱 sys.path 不是推荐的解决方案,因为它不是真正强大且不跨平台。