在 Ubuntu 14.04 上我运行
mkvirtualenv -p /usr/bin/python3 myvenv
我得到了
Running virtualenv with interpreter /usr/bin/python3
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 37, in <module>
import ConfigParser
ImportError: No module named 'ConfigParser'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 39, in <module>
import configparser as ConfigParser
File "/usr/local/lib/python2.7/dist-packages/configparser.py", line 397
_KEYCRE = re.compile(ur"%\(([^)]+)\)s")
^
SyntaxError: invalid syntax
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 15, in <module>
from configparser import ConfigParser, NoOptionError, NoSectionError
File "/usr/local/lib/python2.7/dist-packages/configparser.py", line 397
_KEYCRE = re.compile(ur"%\(([^)]+)\)s")
^
SyntaxError: invalid syntax
Original exception was:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 37, in <module>
import ConfigParser
ImportError: No module named 'ConfigParser'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 39, in <module>
import configparser as ConfigParser
File "/usr/local/lib/python2.7/dist-packages/configparser.py", line 397
_KEYCRE = re.compile(ur"%\(([^)]+)\)s")
^
SyntaxError: invalid syntax
它显然正在尝试使用 python2 安装 python3 虚拟环境。我该如何解决这个问题?
答案1
我终于明白了。
sudo pip uninstall virtualenv
sudo pip3 install virtualenv
就这么简单。
答案2
python2.7 和 python3.4.0 之间应该virtualenv.py
兼容。而你的版本例外,因为 python3 版本无法加载(重命名的)ConfigParser
模块。
您似乎正在运行旧版本的virtualenvwrapper
。在我的系统上virtualenv.py
看起来像:
try:
import ConfigParser
except ImportError:
import configparser as ConfigParser
大约在第 37 行(virtualenvwrapper 版本 4.6.0),然后就恢复使用新名称了configparser
您可以尝试使用以下方法升级:
sudo pip install -U virtualenvwrapper
如果你最初安装virtualenvwrapper
了pip
答案3
这太奇怪了。我已经解决了这个问题,但又遇到了这个问题。我以前的建议不够。
这次我不得不卸载 pip 和 pip3,然后重新安装它们。我认为我的 pip 版本是使用 easy_install 以一种非常奇怪的方式安装的,但我可以使用以下命令卸载它:
sudo pip uninstall pip
然后我重新安装了pip:
sudo apt-get install python3-pip