微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PYTHONPATH未包含在Ubuntu 16.04上的sys.path中

参见英文答案 > How do you set your pythonpath in an already-created virtualenv?                                    6个
经过几个小时的挣扎,我才结束了.

我想将项目中的python模块包含到PYTHONPATH中,以便Python解释器可以解析它们并使它们可用于导入.

我的项目文件夹如下所示:

my_project/
  module1/
    __init__.py
    module1.py
  module2/
    __init__.py
    module2.py

我在/etc/bash.bashrc中导出了PYTHONPATH,如下所示:

PYTHONPATH="${PYTHONPATH}:/home/john/my_project/"

重新启动我的shell后,我可以回复它:

$echo $PYTHONPATH
:/home/john/my_project/

然后我启动一个Python命令行,看看sys.path变成了什么:

$source /home/john/my_env/bin/activate
(my_env)$python3
>>> import os
>>> sys.path
['', '/home/john/my_env/lib/python35.zip', '/home/john/my_env/lib/python3.5', '/home/john/my_env/lib/python3.5/plat-x86_64-linux-gnu', '/home/john/my_env/lib/python3.5/lib-dynload', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/home/john/my_env/lib/python3.5/site-packages']

您可以清楚地看到,/ home / john / my_project /未包含在内,导入module1将失败.

我能想到的最后一件事是Python无法看到我的PYTHONPATH变量,因此不会将其内容添加到sys.path中.

你们发现我的错误吗?

提前致谢.

解决方法:

here可以看出:

在bash中使用export为当前shell和从当前shell生成的所有进程设置变量.所以你应该使用:

export PYTHONPATH =“${PYTHONPATH}:/ home / john / my_project /”

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐