virtualenvwrapper + python3: sintaxe inválida

0

No Ubuntu 14.04 eu corro

mkvirtualenv -p /usr/bin/python3 myvenv

E eu recebo

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

Ele está visivelmente tentando instalar um python3 virtualenv usando python2. Como posso resolver isso?

    
por e18r 16.06.2015 / 14:44

3 respostas

1

Isso é tão estranho. Eu tinha resolvido isso e me deparei com isso mais uma vez. Minha velha sugestão não foi suficiente.

Desta vez eu tive que desinstalar o pip e o pip3 e reinstalá-los. Acho que minha versão pip foi instalada de uma maneira muito estranha usando o easy_install, mas eu poderia desinstalá-lo usando:

sudo pip uninstall pip

Então eu reinstalei o pip:

sudo apt-get install python3-pip
    
por emisilva 16.12.2015 / 18:38
1

O virtualenv.py deve ser compatível entre python2.7 e python3.4.0. E o seu está com exceção porque a versão python3 não pode carregar o módulo (% renomeado) ConfigParser .

Parece que você está executando uma versão mais antiga de virtualenvwrapper . No meu sistema virtualenv.py se parece com:

try:
    import ConfigParser
except ImportError:
    import configparser as ConfigParser

na linha 37 (virtualenvwrapper versão 4.6.0), e isso só volta a usar o novo nome configparser

Você pode tentar atualizar usando:

sudo pip install -U virtualenvwrapper

se você instalou originalmente virtualenvwrapper com pip

    
por Anthon 16.06.2015 / 17:29
1

Eu finalmente entendi.

sudo pip uninstall virtualenv
sudo pip3 install virtualenv

Isso é simples.

    
por emisilva 06.08.2015 / 17:25