2017-06-07 3 views
2

J'ai un problème avec pip. Je veux exécuter un programme qui a besoin de Box2d. Mais quand je lance le programme que je reçois une erreur comme ceci:Pip ne peut pas désinstaller ce package

...(removed)... 
    File "/usr/local/lib/python2.7/dist-packages/Box2D/__init__.py", line 20, in <module> 
    from .Box2D import * 
    File "/usr/local/lib/python2.7/dist-packages/Box2D/Box2D.py", line 434, in <module> 
    RAND_LIMIT = _Box2D.RAND_LIMIT 
AttributeError: 'module' object has no attribute 'RAND_LIMIT' 

j'ai décidé de désinstaller Box2d et l'installer à nouveau. J'ai essayé la commande uninstall dans pip mais il n'a pas pu le désinstaller. (pip indique que les packages ont été supprimés mais le forlder Box2d se trouve toujours dans le dossier dist-packages). Ne devrait pas pip l'enlever avec cette commande?
Toute solution pour supprimer Box2d ou corriger l'erreur?

+0

une façon naïve, mais que diriez-vous de Exécuter 'rm -rf/usr/local/lib/python2.7/dist-packages/Box2D' – Aleksandar

+0

Il suffit de supprimer le dossier de' dist-packages'? –

Répondre

2

Il suffit de supprimer le dossier dans dist-packages. Ensuite, assurez-vous qu'il n'y a pas d'autres références à l'emballage dans sys.path dossiers:

#in 2.7.13 in `-c' mode, `print' adds `\n' even with `,' at the end 
python -c 'import sys; sys.stdout.write("\0".join(sys.path))' | xargs -0 -I ARG find ARG -type f -print0 | xargs -0 grep -iHe 'box2d' 

(Note: cela ne recherche pas .zip s, emballé .egg s et autres.)

+0

Cela a fonctionné. Je l'ai fait et ensuite utilisé la commande 'uninstall' de' pip' et ensuite installé 'box2d' avec cette commande:' sudo pip installe box2d --upgrade --ignore-in' (je ne sais pas lequel l'a causé travail!) – Milad