编辑:TL; DR:我可以看到我的问题是模棱两可的。总结,您可以理解,无论我做什么,virtualenv都会继续使用系统python解释器(来自/ usr / bin /),即使我通过virtualenv -p
手动指定了它。奇怪的是,如果我使用virtualenv -p python3
,它会起作用。
好,这是交易
我有anaconda2,而anaconda在PATH中。当前的python
,virtualenv
,pip
来自anaconda2。
当我输入python
时:
Python 2.7.14 |Anaconda, Inc.| (default, Dec 7 2017, 17:05:42)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
当我创建新的virtualenv
并为其提供源时,which python
确实显示了virtualenv中的python解释器,但是当我运行python
时,发生了一些奇怪的事情:
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
据我所知,virtualenv
将使用安装了virtualenv的python
解释器(virtualenv --help
如此)。该2.7.12
python,与上述python(2.7.14
)不同。
所以我认为“好吧,我的anaconda2的python
可能有问题。让我们再使用一个。”我通过指定标志python
使用了另一个-p
(我的机器上安装了许多python版本。这是一台远程服务器,有很多人在访问它,我只是指向我的一位同事{{ 1}}。我可以确定这里没有环境冲突,我们都使用virtualenv进行项目,并通过python
来控制每个人的$PATH
偏好设置
没有帮助。我开始感到困惑。好吧,~/.bash_aliases
坏了。也许virtualenv
坏了。也许pip
坏了。检查路径,看来是正常的。重新安装了所有内容,没有任何帮助。
现在,我必须使用系统anaconda
(至少不是直接使用python
,而是使用/usr/bin/python
。至少我不需要到处使用/path/to/virtualenv/python
)。这里没什么大变化,但我感到非常不高兴,非常想知道原因。
谁能给我一个建议?我将不胜感激
预先感谢!
答案 0 :(得分:0)
virtualenv中有一个标志-always-copy ,可帮助您复制所有文件,而不是使用符号链接。
-始终复制
始终复制文件而不是符号链接。
virtualenv -p python3 --always-copy python_env
这基本上可以解决您的问题。