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

Другие вопросы по тегам