附加路径但python找不到模块

时间:2017-05-25 03:13:38

标签: python linux

我有以下结构:

~/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导入,尽管它在我的路径中?

我错过了什么吗?

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