我有以下结构:
~/git/
~/git/folder1
~/git/folder2
在〜/ git / folder1中的我有main.py,它执行以下操作:
import folder2.future_data as future_data
会抛出以下错误:
import folder2.future_data as f_d
ImportError: No module named folder2.future_data
尽管我的$PATH
包含
user@mac-upload:~$ echo $PATH
/home/user/anaconda2/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/user/git/folder2
为什么我无法从文件夹2导入,尽管它在我的路径中?
我错过了什么吗?
答案 0 :(得分:1)
尝试在每个目录中放置一个空的__init__.py
文件(〜/ git,〜/ git / folder1和〜/ git / folder2)。然后做export PYTHONPATH=${HOME}/git:$PYTHONPATH
(假设bash shell)。
这也允许您在顶层设置一次PYTHONPATH并完成它。如果添加需要导入的更多目录(模块),可以继续将__init__.py
文件添加到结构中(而不是每次文件/目录结构更改时都不断修改PYTHONPATH
)
答案 1 :(得分:0)
在执行导入之前,您可以在main.py脚本中显式添加路径
import sys
sys.path.append(r'~/git/folder2')
import future_data