upewnij się, że pakiet Pythona jest wyłączony w Debian / Ubuntu

10

Próbuję stworzyć środowisko wirtualne do rozwoju mojej aplikacji Django. Komando, którego używam:

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']


vagrant@vagrant:/var/www/djangogirls$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-venv is already the newest version (3.5.1-3).
The following packages were automatically installed and are no longer required:
  javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore python-pbr python-pkg-resources
  python-six python-stevedore python3-virtualenv virtualenv virtualenv-clone
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 108 not upgraded.

vagrant@vagrant:/var/www/djangogirls$ python3 -m ensurepip
ensurepip is disabled in Debian/Ubuntu for the system python.

Python modules for the system python are usually handled by dpkg and apt-get.

    apt-get install python-<module name>

Install the python-pip package to use pip itself.  Using pip together
with the system python might have unexpected results for any system installed
module, so use it on your own risk, or make sure to only use it in virtual
environments.


vagrant@vagrant:/var/www/djangogirls$ rm -r myvenv/ 

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Jak widać, próbuję utworzyć plik myvenv, którego nie można utworzyć z powodu braku python3-venv. Już to zainstalowałem, ale upewnij się, że brakuje pip. Po przeszukaniu wydaje się, że system (Ubuntu 16.04) odradza korzystanie z pakietu. Czy ktoś mógłby mi pomóc obejść ten problem?

Anna Jeanine
źródło
Rzeczywiste polecenie, które się nie powiedzie /var/www/djangogirls/myvenv/bin/python3 -Im ensurepip ..., może się nie powieść z zupełnie innych powodów.
muru

Odpowiedzi:

14

Tutaj jest powiązany raport o błędzie

upewnij się, że brakuje Ubuntu / wyłączono go w komponencie

Rozwiązaniem jest stworzenie wirtualnego środowiska bez pip

python3 -m venv myvenv --without-pip

upewnij się, że składnik nie został wywołany i w tym przypadku zostanie utworzone nowe środowisko.

Jednak brakujący pip w środowisku wirtualnym może stanowić problem.

Jednym z rozwiązań jest instalacja pakietu systemowego pip3 i bezpośrednie korzystanie z systemowego modułu pip w środowisku wirtualnym.

Środowisko wirtualne musi mieć dostęp do pakietów witryny systemowej, aby móc korzystać z systemowego modułu pip.

  1. zainstaluj systemowy pakiet pip python3

    sudo apt-get install python3-pip
  2. stworzyć środowisko wirtualne bez pip i z dostępem do pakietów lokacji systemowej

    python3 -m venv myvenv --without-pip --system-site-packages

Możesz teraz użyć systemowego modułu pip do zainstalowania pakietów Pythona w swoim środowisku wirtualnym.

Zamiast tego pip install Djangomusisz użyć jawnego

myvenv/bin/python3 -m pip install Django

lub możesz najpierw aktywować swoje środowisko wirtualne

source myvenv/bin/activate
python3 -m pip install Django

python3 -m pip --version może się przydać, aby sprawdzić, które środowisko Pythona jest używane.

Na podstawie rozwiązania tutaj znalezionego , ale nie używaj proponowanego python get-pip.pyw środowisku wirtualnym, ponieważ spowoduje to kradzież pippoleceń systemowych

mojeto
źródło
Błąd Debiana dotyczący tego problemu znajduje się tutaj: bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601
nnyby
1

Anakonda zachwiała się

Jeśli używasz Anaconda lub Conda, to rozwiązanie może ci pomóc:

Conda sama zarządza Pythonem jako pakietem , dzięki czemu możliwa jest aktualizacja Pythona, w przeciwieństwie do pipa, który zarządza tylko pakietami Pythona. Conda jest dostępna w wersjach Anaconda i Miniconda (łatwe do zainstalowania pobieranie z użyciem tylko Pythona i Conda).

bardzo niepokojące dla mnie, ale dobrze, ręce do klawiatury w oknie terminala:

conda update python

Spójrz na to zdjęcie, wynik może może ci pomóc, miłego dnia!

Jimmy Olano
źródło