2016-05-17 157 views
1

我一直在试图做一个简单的Python模块导入,并且遇到了这个简单操作的问题。在〜/ .bashrc中使用PYTHONPATH导入Python模块不起作用

我有如下的目录结构:

/home/username/Desktop/project 
    - src/ 
    - src_a.py 
    - __init__.py 
    - bin/ 
    - __init__.py 
    - app.py 

我加/home/username/Desktop/project/srcPYTHONPATH,如下所示:在我~/.bashrc接着是$ source ~/.bashrc

export PYTHONPATH="${PYTHONPATH}:/home/username/Desktop/project/src" 

我仍然无法在app.py或其他地方找到该模块。我的编辑器似乎也无法识别(自动完成)模块。我搜索了多个相关的问题,并指出了相同的过程。我错过了什么吗?

+0

我建议去掉'bash'标签,除非你能确认是t他bash代码真的没有做它应该做的。如果你运行'env | grep PYTHONPATH',是你期望显示的值吗?如果是这样,不是bash问题。 –

+0

'env | grep PYTHONPATH'显示路径,继续并删除'bash'标签....谢谢:) – lordlabakdas

+0

app.py中的'import'行究竟是行不通的? –

回答

3

已创建包名为srcbin。如果你想从包中导入的东西,你需要将你的PYTHONPATH设置为包含包的目录的目录,在这种情况下:

export PYTHONPATH=${PYTHONPATH}:/home/username/Desktop/project 

现在你应该可以导入这样的:

from src import src_a 

此外,由于bin是在同一个目录中的包,你可以从它导入对象:

from bin import app 
+0

你是对的....谢谢!该模块似乎得到导入,并能够成功导入它们。但是,我的编辑似乎仍然没有自动完成这些功能。我尝试了两种不同的(Atom和Spyder),都失败了。 – lordlabakdas

+0

我终于把它与Atom一起工作了!还有一个额外的设置,我们可以指定我们想要的特定软件包('/ home/username/Desktop/project')并自动完成工作!不知道为什么它不会自动从'PYTHONPATH'中选取它。再次感谢,这个答案解决了我的问题。 :) – lordlabakdas