我的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
作为选项?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以通过执行
指定要使用的python版本 $ virtualenv venv --python=/usr/bin/python2