【发布时间】:2016-04-06 05:27:54
【问题描述】:
PyCharm 似乎忽略了配置的virtualenv,
并改用基本解释器。
在我的/Users/janos/dev/git/github/bashoneliners 项目中,我有一个virtualenv 子目录,其中严格安装了我的项目依赖项:
$ . virtualenv/bin/activate
(virtualenv)janos at kronos in ~/dev/git/github/bashoneliners on master
$ pip -V
pip 1.5.6 from /Users/janos/dev/git/github/bashoneliners/virtualenv/lib/python3.4/site-packages (python 3.4)
(virtualenv)janos at kronos in ~/dev/git/github/bashoneliners on master
$ pip freeze
Django==1.9
Markdown==2.6.5
PyJWT==1.4.0
defusedxml==0.4.1
oauthlib==1.0.3
pep8==1.6.2
pyflakes==1.0.0
python-social-auth==0.2.13
python3-openid==3.0.9
requests==2.9.1
requests-oauthlib==0.6.0
six==1.10.0
tweepy==3.5.0
但如果我在 PyCharm 中将这个 virtualenv 添加为 Project Interpreter,
它显示了完全不同的包:
这些包与我系统的基本解释器/opt/local/bin/python 中的相同。这让我抓狂,我真的需要使用来自virtualenv 的软件包,不是来自我的系统。
这是 PyCharm 社区版 5.0.3。
我之前使用旧版本的 PyCharm 没有这个问题。
我尝试创建一个全新的virtualenv,
无论是在命令行上还是使用 PyCharm,
并使缓存无效并重新启动,但似乎没有任何效果。
PyCharm 总是显示相同的包列表,
和virtualenv 的包。
即使我在 PyCharm 中创建了一个空的virtualenv,
它开始时不是空的,而是填充了相同的包列表。
当我在命令行上运行时,我的项目运行良好, 比如运行 Django 管理命令,单元测试,一切。 我只有 PyCharm 有问题。
如果我尝试安装软件包,例如 Django, 使用 PyCharm, 我收到此错误:
当然,/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages 的权限被拒绝,那是系统解释器。
它应该尝试在那里安装软件包,
但在/Users/janos/dev/git/github/bashoneliners/virtualenv。
显然它不是使用来自virtualenv 的pip,而是来自系统。
我需要使用virtualenv中的那个。
【问题讨论】:
-
您是否记录了有关 jetbrains youtrack 的问题?
-
您是否从虚拟环境中排除了全局包?
-
@jonrsharpe 我不知道。我用
virtualenv --distribute virtualenv创建我的环境。但我开始认为这个问题可能与我安装 Python 的方式有关(macports,但不记得细节)。例如,在虚拟环境之外,pip与python不同步。也就是说,在pythonshell 中,我无法导入pip freeze显示的包。也许如果我先解决这个问题(我应该这样做),也许 PyCharm 也会神奇地开始工作。 -
@jonrsharpe 我清理了我的系统。
python、pip、virtualenv都已正确同步,现在使用相同的 Python 安装。这对 PyCharm 没有帮助,所以我的怀疑是错误的。我想那是一个错误。我过去在 PyCharm 上没有遇到过这样的问题。 -
好点@Sayse,它似乎已经记录了:youtrack.jetbrains.com/issue/PY-18074
标签: django macos virtualenv pycharm