virtualenvwrapper + python3: неверный синтаксис
На 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
Он явно пытается установить python3 virtualenv с помощью python2. Как я могу решить это?
3 ответа
Это так странно. Я решил это, и я столкнулся с этим еще раз. Моего старого предложения было недостаточно.
На этот раз мне пришлось удалить pip и pip3, а затем переустановить их. Я думаю, что моя версия pip была установлена очень странным образом с помощью easy_install, но я мог удалить ее, используя:
sudo pip uninstall pip
Затем я переустановил пипс:
sudo apt-get install python3-pip
Я наконец получил это.
sudo pip uninstall virtualenv
sudo pip3 install virtualenv
Так просто.
virtualenv.py
должен быть совместим между python2.7 и python3.4.0. И ваше исключение, потому что версия 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