Spróbuj usunąć lub zmienić nazwę pliku .pydistutils.cfg w swoim katalogu domowym, np. zmieniając nazwę na mv ~/.pydistutils.cfg ~/oldpydistutils.cfg
Zamieszczam szczegółową odpowiedź tutaj, aby pomóc innym, ale pierwotny kredyt trafia do this answer. Jeśli wiesz, co konkretnie w .pydistutils.cfg było przyczyną problemu, daj mi znać!
Miałem ten sam problem: moje środowiska wirtualne zostały utworzone bez lokalnej kopii pip, mimo że miały lokalną kopię Pythona. Oznaczało to, że używanie $ pip
z poziomu środowiska wirtualnego zainstalowanego w lokalizacji globalnego pakietu i nie było widoczne dla pythona środowiska.
Jak zdiagnozowano to na moim komputerze:
- tworzę virtualenvironment z
$ virtualenv env
- aktywował wirtualnego środowiska z
$ source env/bin/activate
- sprawdzone położenie python: uruchom
(env)$ which python
z wyjściem /Users/<username>/env/bin/python
(zgodnie z oczekiwaniami)
- Sprawdzone położenie pip: uruchom
(env)$ which pip
z wyjściem /usr/local/bin/pip
(NIE Oczekiwano)
Aby sprawdzić, gdzie nasze pakunki dzieje, możemy spróbować zainstalować pakiet w środowisku wirtualnym:
- próby zainstalowania pakietu:
(env)$ pip install HTTPServer
który powiedzie
- Spróbuj uruchomić pakiet:
(env)$ python -m HTTPServer
który kończy się niepowodzeniem z błędem /Users/emunsing/env/bin/python: No module named HTTPServer
- dokładnie sprawdzić, spróbuj ponownie zainstalować:
(env)$ pip install HTTPServer
która produkuje Requirement already satisfied (use --upgrade to upgrade): HTTPServer in /usr/local/lib/python2.7/site-packages
podwójnej kontroli, widzimy, że nie ma Pip w folderze/bin środowiska za:
$ ls env/bin activate activate.fish python python2 activate.csh activate_this.py python-config python2.7
I tak, podczas gdy system stwierdzi lokalnej wersji Pythona, nie może znaleźć lokalnego pip używania i trawersy $ PATH. Kończyło się to używaniem pip z/usr/local/bin, przez co nie mogłem zainstalować pakietów lokalnie w środowisku wirtualnym.
Oto, co starałem: - Ponowna pytona brew uninstall python
następnie brew upgrade
i brew install python --build-from-source
- instalacja pip using the get-pip.py command as described in the Pip documentation
Oto co wykluczone: - Ja nie używałem sudo pip ...
which caused similar problems in this other question i nie zrobiły na dowolny czas instalacji Python/pip - Moje środowisko wirtualne nie pokazuje lokalnej instalacji pip, jak miało to miejsce w przypadku podobnych pytań: This one for Windows, This one for Mac OS X.
Ostatecznie odkryłem, że wyeliminowanie pliku ~/.pydistutils.cfg
rozwiązało problem, umożliwiając tworzenie nowych środowisk wirtualnych, które miały własne lokalne pipsy.Zawartość mojego pliku ~/.pydistutils.cfg
były:
[global]
verbose=1
[install]
install-scripts=$HOME/bin
[easy_install]
install-scripts=$HOME/bin
prostu zmiana nazwy pliku ~/.pydistutils.cfg
wydaje się rozwiązać problem: wydaje się, że chociaż ten plik został utworzony przez homebrew instalacji, some settings in this file may be incompatible with virtualenv. Podczas usuwania tego pliku nie wystąpiły żadne złe efekty w moim systemie, może być konieczne użycie flagi --user
podczas instalowania pakietów z pip do środowiska globalnego (np. $ pip install --user HTTPServer
). Tutaj jest więcej details on .pydistutils.cfg, jeśli chcesz pracować nad dostosowaniem go do swoich potrzeb.
Czy używałeś 'sudo' podczas instalowania' virtualenv'? Może w jakiś sposób został zainstalowany jako pakiet prywatno-prywatny i to powoduje problemy. (Podobnie jak nie mając gdziekolwiek plików binarnych są umieszczane podczas tej instalacji na 'PATH' itp.) – millimoose
@millimoose Próbowałem obu bez' sudo', a wraz z nim wynik jest taki sam. Jest mało prawdopodobne, aby problem przywilejów, ponieważ możliwe jest użycie 'virtualenv.py' [lokalnie ze źródła] (https://virtualenv.pypa.io/en/latest/installation.html). Użycie 'virtualenv.py' z tarballa również niewiarygodnie nie przesyła' pip'. – mikeonly