在virtualenv

时间:2016-09-18 11:09:38

标签: python virtualenv

我的Debian 8.5机器上的默认python版本是 3.4.2 。我想只对一个项目使用python 2.7 。我已尝试逐个在终端中运行以下所有命令:

virtualenv -p python2.7 env_dir
virtualenv -p python2 env_dir
virtualenv --python=python2.7 env_dir

这是env_dir中的file.py:

print "Hello world from inside env_dir"

显然,file.py仍然使用python3.4.2执行,因为我运行:

python file.py

我得到:

      File "file.py", line 1
    print "Hello world from inside env_dir"
                                      ^
SyntaxError: Missing parentheses in call to 'print'

问题是什么,为什么它无法在python2.7中运行代码?

更新

我也尝试过:

virtualenv -p /usr/bin/python2.7 env_dir

source env_dir/bin/activate


(env_dir) amir@amir-debian:~/env_dir$ python file.py 
  File "file.py", line 1
    print "Insid virtual env"
                        ^
SyntaxError: Missing parentheses in call to 'print'

激活后运行python -V返回: Python 3.4.2

更新-2 以下是我尝试创建virtualenv和终端输出的过程:

$ virtualenv --python=/usr/bin/python2.7 venv3

Running virtualenv with interpreter /usr/bin/python2.7
New python executable in /home/amir/Desktop/venv3/bin/python2.7
Also creating executable in /home/amir/Desktop/venv3/bin/python
Installing setuptools, pip, wheel...done.

$ source venv3/bin/activate
(venv3) amir@amir-debian:~/Desktop$ python -V
Python 3.4.2

(venv3) amir@amir-debian:~/Desktop$ python
Python 3.4.2 (default, Oct  8 2014, 10:45:20) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

为什么工作版本仍然是3.4.2而不是2.7,因为我在创建venv3时给了vertualenv作为选项?

2 个答案:

答案 0 :(得分:0)

通过执行python -v检查你是否有python2 如果你有它,你可以做python2 file.py 这里也有答案 是的 virtualenv -p /usr/bin/python2.7< path / to / new / virtualenv />

答案 1 :(得分:0)

您可以通过执行

指定要使用的python版本

$ virtualenv venv --python=/usr/bin/python2