我有两个不同的 Ubuntu VM,第一个 14.04 第二个 16.04。在第一个当我由于某种原因用 pyhton3 创建 virtualenv 时,python27 也被安装
user@ubuntu:~/venv$ virtualenv --python=python3 --no-site-packages py3-venv
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/user/venv/py3-venv/bin/python3
Also creating executable in /home/user/venv/py3-venv/bin/python
Installing setuptools, pip, wheel...done.
user@ubuntu:~/venv$ source py3-venv/bin/activate
(py3-venv) user@ubuntu:~/venv$ python -V
Python 2.7.12
在第二个虚拟机上做的同样的事情按预期工作
user@my-box:~/venv$ virtualenv -p /usr/bin/python3 py3-venv
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/user/venv/py3-venv/bin/python3
Also creating executable in /home/user/venv/py3-venv/bin/python
Installing setuptools, pip, wheel...done.
user@my-box:~/venv$ source py3-venv/bin/activate
(py3-venv) user@my-box:~/venv$ which python
/home/user/venv/py3-venv/bin/python
(py3-venv) user@my-box:~/venv$ python -V
Python 3.5.2
即使我输入了 python 命令,我也需要 virtualenv 来运行 python3。任何想法如何做到这一点?
[更新]
这是我见过的最奇怪的事情
(py3-venv) user@ubuntu:~/venv$ which python
/home/user/venv/py3-venv/bin/python
(py3-venv) user@ubuntu:~/venv$ python -V
Python 2.7.12
(py3-venv) user@ubuntu:~/venv$ ./py3-venv/bin/python -V
Python 3.4.3
[更新 2]
我完全迷路了......即使strace python
命令指向正确的文件
(py3-venv) user@ubuntu:~/venv$ strace python
execve("/home/user/venv/py3-venv/bin/python", ["python"], [/* 24 vars */]) = 0
brk(0) = 0x204f000
[更新 3]
如果我/home/user/venv/py3-venv/bin
从PATH
python 命令中删除以外的所有内容都无法执行...请帮忙!!
(py3-venv) user@ubuntu:~$ export PATH=/home/user/venv/py3-venv/bin
(py3-venv) user@ubuntu:~$ echo $PATH
/home/user/venv/py3-venv/bin
(py3-venv) user@ubuntu:~$ python -V
Command 'python2.7' is available in the following places
* /usr/bin/python2.7
* /usr/local/bin/python2.7
The command could not be located because '/usr/bin:/usr/local/bin' is not included in the PATH environment variable.
python2.7: command not found
我发现我的虚拟环境出了什么问题。显然,有人.bash_aliases
在用户的主目录中创建了一个文件,并在python
执行命令时创建了使用python27 的别名,这覆盖了我的 venv 的 python。
(py3-venv) user@ubuntu:~$ python -V
Python 3.4.3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句