【问题标题】:PYTHONPATH not set automatically in virtualenvsPYTHONPATH 未在 virtualenvs 中自动设置
【发布时间】:2017-07-03 11:09:49
【问题描述】:

我在 Windows 10 上安装了一个带有 xubuntu-16.04.2-desktop 的虚拟机。 当我创建一个运行夹层应用程序的环境时,我收到此错误:

Traceback (most recent call last):
File "manage.py", line 7, in <module>
from mezzanine.utils.conf import real_project_name
ImportError: No module named 'mezzanine'

当我尝试导入模块时也是这样:

(test) mauri@bison:~$ python -c "import django"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'django'

问题似乎是 PYTHONPATH 设置不正确。 如果我手动设置,一切正常。

(test) mauri@bison:~$ export 
PYTHONPATH="/home/mauri/envs/test/lib/python3.5/site-packages/"
(test) mauri@bison:~$ python -c "import django"
(test) mauri@bison:~$ env
XDG_VTNR=7
LC_PAPER=cs_CZ.UTF-8
LC_ADDRESS=cs_CZ.UTF-8
 XDG_SESSION_ID=c1
....

知道为什么我创建环境时没有自动设置 PYTHONPATH 吗?

非常感谢,如果我错过了解释中的任何内容,我很抱歉,我在这个领域还很新。

【问题讨论】:

  • PYTHONPATH 环境在您激活虚拟环境时未设置。这不是它的工作原理。运行python并执行import sys; print(sys.path),应该会自动添加site-packages目录。
  • 这是结果(test) mauri@bison:~$ python -c "import sys; print(sys.path)" ['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']

标签: python ubuntu virtualbox virtualenv


【解决方案1】:

如果您有任何 alias 覆盖 python 设置,请检查您的 bash*。您可以使用 bash 中的命令 alias 轻松检查:

$ alias
alias ll='ls -alh'
alias ls='ls -G'
...

【讨论】:

  • 是的,这就是问题所在。删除了别名,现在一切正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
相关资源
最近更新 更多