python2.7 quebrado por erro de importação weakref, por favor me ajude!

20

Acabei de atualizar de 16.04 para 17.10, e toda vez que tento executar qualquer comando python2.7, estou recebendo este erro:

pip install --upgrade pip
Traceback (most recent call last):
File "/home/XXXX/bin/pip", line 7, in <module>
    from pip import main
  File "/home/XXXX/local/lib/python2.7/site-packages/pip/__init__.py", 
line 5, in <module>
    import logging
  File "/usr/lib/python2.7/logging/__init__.py", line 26, in <module>
    import sys, os, time, cStringIO, traceback, warnings, weakref, 
collections
  File "/home/XXXX/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref

Outro usuário teve um problema semelhante, mas isso afeta qualquer programa python que eu tente executar. Não consigo instalar nada via pip ou usar scripts python. Eu realmente não tenho ideia do que fazer, a ajuda seria muito apreciada.

A saída de "python --version" é

Python 2.7.12

no entanto, "update python" produz:

python is already the newest version (2.7.14-2ubuntu1).
    
por Alaisdar Alves 30.11.2017 / 03:16

3 respostas

18

Esta não é uma solução Ubuntu, mas como esta questão aparece alta nos resultados da pesquisa para o erro, eu queria dizer que eu tinha esse erro no OSX porque meu sistema padrão Python era 2.7, e eu preparei o python @ 2 "durante a instalação de outro pacote.

Se você estiver no OSX e estiver usando o homebrew, verifique seus pacotes instalados com o brew rodando brew list , e se "python @ 2" aparecer nessa lista, e o Python 2.7 for o seu sistema Python, você pode remover o preparar o pacote instalado com brew remove python@2 --ignore-dependencies

    
por duhaime 02.04.2018 / 03:57
8

Caso você esteja usando um ambiente virtual, será necessário recriá-lo. A outra possibilidade é que você use alguma versão Python baseada em fontes ou instaladas lado a lado, que colide com a do sistema. Nesse caso, você precisa descobrir que as pastas e os caminhos corretos estão configurados em vários ambientes.

    
por Csaba Toth 01.01.2018 / 03:51
3

No meu caso, foi um erro relacionado ao ambiente virtual. Então, criar um novo ambiente virtual funcionou para mim. Aqui está a lista de comandos que podem ajudá-lo no mesmo.

Instalando o ambiente virtual:

pip install virtualenv

Criando um novo ambiente virtual:

virtualenv -p {env_name}

Ativando o ambiente virtual:

source env_name/bin/activate

Desativando seu ambiente virtual:

deactivate
    
por 30.08.2018 / 20:38

Tags