Bar*_*ich 5 python python-import pythonpath
当我尝试从Linux终端运行代码时,我的导入不起作用.具体来说,从同一项目中的其他包导入.我知道这是一个PYTHONPATH问题,但我不知道如何进一步诊断或解决它.代码在IDE(eclipse)中运行良好.
我对永久解决方案感兴趣,猜测它将涉及编辑.bashrc.我只是想从命令行调用脚本,比如
python my_script.py
Run Code Online (Sandbox Code Playgroud)
os.environ["PYTHONPATH"] 在ipython终端中给出了一个关键错误.
我试过了
print os.getcwd()
print sys.path
Run Code Online (Sandbox Code Playgroud)
在IDE里面
/home/myname/workspace/project2/main
['/home/myname/workspace/project2/main', '/home/myname/workspacep/problem2', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_6
4-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/p
ython2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pytho
n2.7/dist-packages/ubuntu-sso-client', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/lib-old']
Run Code Online (Sandbox Code Playgroud)
内部终端
/home/myname/workspace/project2/main
['/home/myname/workspace/project2/main', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
Run Code Online (Sandbox Code Playgroud)
在Pycharm Eclipse 与 bash shell中执行脚本之间的区别在于环境变量 $PYTHONPATH 的值。
在Pycharm 中,转到首选项,然后项目解释器设置并将鼠标悬停在您在终端中找不到的包上。该包所在的路径应该出现。Eclipse,找出项目的环境变量的存储位置,或者找到相关模块的路径。
将该路径添加到 shell 中的 $PYTHONPATH 中
\n\nPYTHONPATH=$PYTHONPATH:your/path/here\nRun Code Online (Sandbox Code Playgroud)\n\n您可以将该行添加到 .bashrc 或 .bash_profile 文件中,也可以将其添加到 bash 脚本中,或者每次都键入它。
\n\n更新回应OP评论:
\n\n使用指向您未找到的 python 模块安装目录的路径。
\n\n尝试
\n\npython -v\nRun Code Online (Sandbox Code Playgroud)\n\n在您的 IDE 控制台中。这应该会给你一个模块及其目录的列表。
\n\n在 shell 中使用相同的命令,差异将显示哪里缺少什么。
\n