在〜/ .bashrc中使用PYTHONPATH导入Python模块不起作用
我一直在试图做一个简单的Python模块导入,并且遇到了这个简单操作的问题。在〜/ .bashrc中使用PYTHONPATH导入Python模块不起作用
我有如下的目录结构:
/home/username/Desktop/project
- src/
- src_a.py
- __init__.py
- bin/
- __init__.py
- app.py
我加/home/username/Desktop/project/src
到PYTHONPATH
,如下所示:在我~/.bashrc
接着是$ source ~/.bashrc
export PYTHONPATH="${PYTHONPATH}:/home/username/Desktop/project/src"
。
我仍然无法在app.py
或其他地方找到该模块。我的编辑器似乎也无法识别(自动完成)模块。我搜索了多个相关的问题,并指出了相同的过程。我错过了什么吗?
已创建包名为src
和bin
。如果你想从包中导入的东西,你需要将你的PYTHONPATH
设置为包含包的目录的目录,在这种情况下:
export PYTHONPATH=${PYTHONPATH}:/home/username/Desktop/project
现在你应该可以导入这样的:
from src import src_a
此外,由于bin
是在同一个目录中的包,你可以从它导入对象:
from bin import app
你是对的....谢谢!该模块似乎得到导入,并能够成功导入它们。但是,我的编辑似乎仍然没有自动完成这些功能。我尝试了两种不同的(Atom和Spyder),都失败了。 – lordlabakdas
我终于把它与Atom一起工作了!还有一个额外的设置,我们可以指定我们想要的特定软件包('/ home/username/Desktop/project')并自动完成工作!不知道为什么它不会自动从'PYTHONPATH'中选取它。再次感谢,这个答案解决了我的问题。 :) – lordlabakdas
我建议去掉'bash'标签,除非你能确认是t他bash代码真的没有做它应该做的。如果你运行'env | grep PYTHONPATH',是你期望显示的值吗?如果是这样,不是bash问题。 –
'env | grep PYTHONPATH'显示路径,继续并删除'bash'标签....谢谢:) – lordlabakdas
app.py中的'import'行究竟是行不通的? –