Radzenie sobie z wieloma wersjami Pythona i PIP?
Czy jest jakiś sposób, aby pip
dobrze grać z wieloma wersjami Pythona? Na przykład Chcę użyć pip
, aby jawnie zainstalować rzeczy do instalacji my site 2.5 lub my site 2.6.
Na przykład z easy_install
, używam easy_install-2.{5,6}
.
I tak - Wiem o virtualenv, i nie - to nie jest rozwiązanie tego konkretnego problemu.
24 answers
# The system default python:
$ python -m pip install fish
# A virtualenv's python:
$ .env/bin/python -m pip install fish
# A specific version of python:
$ python-3.6 -m pip install fish
Poprzednia odpowiedź, pozostawiona dla potomności:
Od wersji 0.8, Pip obsługuje pip-{version}
. Możesz go użyć tak samo jak easy_install-{version}
:
$ pip-2.5 install myfoopackage
$ pip-2.6 install otherpackage
$ pip-2.7 install mybarpackage
EDIT : pip zmienił schemat na pipVERSION
zamiast pip-VERSION
w wersji 1.5. Jeśli posiadasz pip >= 1.5
, powinieneś użyć następujących znaków:
$ pip2.6 install otherpackage
$ pip2.7 install mybarpackage
Sprawdź https://github.com/pypa/pip/pull/1053 Po Więcej Szczegółów
Bibliografia:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-03 18:24:57
W systemie Windows możesz uruchomić moduł pip używając danej wersji Pythona za pomocą Python launcher, py.exe
, jeśli zdecydujesz się zainstalować go podczas instalacji Pythona 3.
py -3 -m pip install packagename
py -2 -m pip install packagename
Możesz być jeszcze bardziej szczegółowy i poprosić o dokładną pod-wersję Pythona:
py -3.6 -m pip install packagename
Aby uzyskać listę wszystkich zainstalowanych wersji Pythona dostępnych za pośrednictwem launchera, Uruchom:
py --list
Alternatywnie, możesz bezpośrednio uruchomić żądany program wykonywalny Pythona:
C:/path/to/specific/python.exe -m pip install packagename
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-08 21:23:30
/path/to/python2.{5,6} /path/to/pip install PackageName
nie działa?
Aby to działało na dowolnej wersji Pythona, która nie ma już zainstalowanego Pipa, musisz pobrać pip i wykonać python*version* setup.py install
. Na przykład python3.3 setup.py install
. Spowoduje to usunięcie błędu importu w komentarzach. (Zgodnie z sugestią @hbdgaf)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-16 19:49:53
Miałem zainstalowany python 2.6 domyślnie (Amazon EC2 AMI), ale potrzebne python2. 7 plus kilka zewnętrznych pakietów dla mojej aplikacji. Zakładając, że masz już zainstalowany python2. 7 wraz z domyślnym Pythonem (w moim przypadku 2.6). Oto jak zainstalować pip i pakiety dla nie-domyślnego python2.7
Zainstaluj pip dla twojej wersji Pythona:
curl -O https://bootstrap.pypa.io/get-pip.py
python27 get-pip.py
Użyj określonej wersji pip do instalacji pakietów:
pip2.7 install mysql-connector-python --allow-external mysql-connector-python
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-24 17:12:26
U mnie w windows działało tak:
-
Zmieniłem nazwę plików Pythona python.py i pytonw.exe to python3.py pythonw3.py
-
Potem uruchomiłem tą komendę w wierszu polecenia:
python3 -m pip install package
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55
Inne odpowiedzi pokazują, jak używać pip z obu 2.X i 3.X Pythona, ale nie pokazuje Jak obsługiwać przypadek wielu dystrybucji Pythona (np. oryginalny Python i Anaconda Python) .
Mam w sumie 3 wersje Pythona: original Python 2.7 i Python 3.5 oraz Anaconda Python 3.5.Oto jak zainstalować pakiet:
-
Original Python 3.5:
/usr/bin/python3 -m pip install python-daemon
-
Original Python 2.7:
/usr/bin/python -m pip install python-daemon
-
Anaconda Python 3.5:
python3 -m pip install python-daemon
Lub
pip3 install python-daemon
Prostsze, ponieważ Anaconda nadpisuje oryginalne binaria Pythona w środowisku użytkownika.
oczywiście instalacja w anacondzie powinna być wykonana za pomocą polecenia
conda
, to tylko przykład.
Upewnij się również, że pip jest zainstalowany dla tego konkretnego Pythona.Być może trzeba będzie ręcznie zainstalować pip. To działa w Ubuntu 16.04:
sudo apt-get install python-pip
Lub
sudo apt-get install python3-pip
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-10 08:33:59
Natknąłem się na ten problem sam niedawno i okazało się, że nie otrzymałem odpowiedniego pip dla Pythona 3, na moim systemie Linux, który również ma Pythona 2.
Najpierw musisz upewnić się, że zainstalowałeś pip dla swojej wersji Pythona:
Dla Pythona 2:
sudo apt-get install python-pip
Dla Pythona 3:
sudo apt-get install python3-pip
Następnie, aby zainstalować pakiety dla jednej lub drugiej wersji Pythona, po prostu użyj następującego polecenia dla Pythona 2:
pip install <package>
Lub dla Pythona 3:
pip3 install <package>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-04 07:00:54
Pip jest również pakietem Pythona. Tak więc najprostszym sposobem instalacji modułów do konkretnej wersji Pythona jest poniżej
python2.7 /usr/bin/pip install foo
Lub
python2.7 -m pip install foo
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-02 06:33:31
Więc najwyraźniej istnieje wiele wersji easy_install
oraz pip
. Wygląda na wielki bałagan. W każdym razie, to jest to, co zrobiłem, aby zainstalować Django dla Pythona 2.7 na Ubuntu 12.10:
$ sudo easy_install-2.7 pip
Searching for pip
Best match: pip 1.1
Adding pip 1.1 to easy-install.pth file
Installing pip-2.7 script to /usr/local/bin
Using /usr/lib/python2.7/dist-packages
Processing dependencies for pip
Finished processing dependencies for pip
$ sudo pip-2.7 install django
Downloading/unpacking django
Downloading Django-1.5.1.tar.gz (8.0Mb): 8.0Mb downloaded
Running setup.py egg_info for package django
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
Installing collected packages: django
Running setup.py install for django
changing mode of build/scripts-2.7/django-admin.py from 644 to 755
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
changing mode of /usr/local/bin/django-admin.py to 755
Successfully installed django
Cleaning up...
$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-08 12:05:24
Stąd: https://docs.python.org/3/installing/
Oto jak zainstalować pakiety dla różnych wersji zainstalowanych w tym samym czasie linux, mac, posix :
python2 -m pip install SomePackage # default Python 2
python2.7 -m pip install SomePackage # specifically Python 2.7
python3 -m pip install SomePackage # default Python 3
python3.4 -m pip install SomePackage # specifically Python 3.4
python3.5 -m pip install SomePackage # specifically Python 3.5
python3.6 -m pip install SomePackage # specifically Python 3.6
Na Windows użyj programu uruchamiającego Pythona py w połączeniu z przełącznikiem-m:
py -2 -m pip install SomePackage # default Python 2
py -2.7 -m pip install SomePackage # specifically Python 2.7
py -3 -m pip install SomePackage # default Python 3
py -3.4 -m pip install SomePackage # specifically Python 3.4
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-01 00:43:18
W Linuksie, Mac OS X i innych systemach POSIX, użyj wersjonowanych poleceń Pythona w połączeniu z przełącznikiem -m
, aby uruchomić odpowiednią kopię pip
:
python2.7 -m pip install SomePackage
python3.4 -m pip install SomePackage
(odpowiednio wersjonowane polecenia pip mogą być również dostępne)
W systemie Windows użyj py
Python launcher w połączeniu z przełącznikiem -m
:
py -2.7 -m pip install SomePackage # specifically Python 2.7
py -3.4 -m pip install SomePackage # specifically Python 3.4
Jeśli pojawi się błąd dla py -3.4
to spróbuj:
pip install SomePackage
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-13 00:12:36
Instalacja wielu wersji Pythona i odpowiednich Pakietów.
Wersja Pythona na tym samym komputerze z systemem windows: 2.7, 3.4 i 3.6
Instalacja wszystkich 3 wersji Pythona :
- zainstalowano Pythona 2.7 , 3.4 i 3.6 z poniższymi ścieżkami
Ścieżka dla wszystkich 3 wersji Pythona :
- upewniłem się, że zmienna PATH (w zmiennych systemowych ) zawiera poniższe ścieżki - C:\Python27\;C:\Python27\Scripts;C:\Python34\;C:\Python34\Scripts;C:\Python36\;C:\Python36\Scripts\;
Zmiana nazwy plików wykonywalnych dla wersji :
- zmieniono nazwę pliku wykonywalnego Pythona w C:\Python36 oraz C:\Python34 odpowiednio do pyton36 i pyton34.
Zaznaczone dla wiersza polecenia dla wszystkich wersji:
Instalowanie pakietów oddzielnie dla każdego Wersja
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-14 17:05:00
Jeśli masz wiele wersji oraz wiele architektur (32-bit, 64-bit), musisz dodać -32 lub -64 na końcu swojej wersji.
W systemie windows przejdź do cmd i wpisz py --list, a wyświetli się wersja, którą zainstalowałeś. Lista będzie wyglądać następująco:
Installed Pythons found by py Launcher for Windows
-3.7-64 *
-3.7-32
-3.6-32
Pełna Komenda jako przykład będzie brzmiała:
py -3.6-32 -m pip install (package)
Jeśli chcesz uzyskać więcej indepth, aby zainstalować określoną wersję pakietu na określonej wersji Pythona, użyj ==(wersja) po paczce. Jako przykład,
py -3.6-32 -m pip install opencv-python==4.1.0.25
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-18 15:55:49
Większość odpowiedzi tutaj odnosi się do problemu, ale chcę dodać coś, co ciągle mnie myliło w odniesieniu do tworzenia alternatywnej instalacji Pythona w /usr/local
na CentOS 7. Kiedy tam zainstalowałem, wydawało się, że pip działa, ponieważ mogłem używać pip2.7 install
i instalować Moduły. Jednak nie mogłem zrozumieć, dlaczego moja nowo zainstalowana wersja Pythona nie widziała tego, co instalowałem.
Okazuje się, że w CentOS 7 istnieje już python2. 7 i pip2. 7 w folderze /usr/bin
. Aby zainstalować pip dla nowej dystrybucji Pythona, musisz konkretnie powiedzieć sudo, aby przejść do /usr/local/bin
sudo /usr/local/bin/python2.7 -m ensurepip
To powinno zostać zainstalowane pip2. 7 w Twoim folderze /usr/local/bin
wraz z twoją wersją Pythona. Sztuczka polega na tym, że jeśli chcesz zainstalować moduły, musisz zmodyfikować zmienną sudo $PATH
, aby zawierała /usr/local/bin
lub wykonać
sudo /usr/local/bin/pip2.7 install <module>
Jeśli chcesz zainstalować nowy moduł. Zajęło mi wieczność, aby pamiętać, że sudo
nie widziałem od razu /usr/local/bin
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-18 01:51:22
Oto moje podejście do problemu. Działa dla Python3. Główne cechy to:
- każda wersja Pythona jest kompilowana ze źródła
- wszystkie wersje są instalowane lokalnie
- w żaden sposób nie umożliwia domyślnej instalacji Pythona w Twoim systemie
- każda wersja Pythona jest izolowana za pomocą virtualenv
Wymagania wstępne: jeśli używasz jakiegoś cienkiego klienta bez zainstalowanego dodatkowego murawy, powinieneś najpierw to uruchomić( przynajmniej w ubuntu 18.04, dodatkowe pakiety dodane dla wygody):
sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-add-repository universe
sudo apt-get update
sudo apt-get install -y build-essential cmake
sudo apt-get install -y zlib1g zlib1g-dev libsqlite3-dev \
openssl libssl-dev libffi-dev unzip pciutils net-tools \
libblas-dev gfortran libblas3
Kroki są następujące:
-
Jeśli masz kilka dodatkowych wersji Pythona zainstalowanych w inny sposób, pozbądź się ich, np. Usuń $HOME/.local/lib / python3.x , itd. (również te instalowane globalnie). Nie dotykaj jednak domyślnej wersji systemu python3.
-
Pobierz źródło dla różnych wersji Pythona w następującej strukturze katalogów:
$HOME/ python_versions/ : download Python-*.tgz packages here and "tar xvf" them. You'll get directories like this: Python-3.4.8/ Python-3.6.5/ Python-3.x.y/ ...
-
At każdy " Python-3.katalog x.y/", wykonaj następujące czynności (do nie użyj "sudo" w którymkolwiek z kroków!):
mkdir root ./configure --prefix=$PWD/root make -j 2 make install virtualenv --no-site-packages -p root/bin/python3.x env
-
W "python_versions /" Utwórz pliki w ten sposób:
env_python3x.bash: #!/bin/bash echo "type deactivate to exit" source $HOME/python_versions/Python-3.x.y/env/bin/activate
-
Teraz, kiedy zechcesz wybrać python3.x, do
source $HOME/python_versions/env_python3x.bash
Aby wejść do virtualenv
-
Będąc w virtualenv, zainstaluj swoje ulubione Pakiety Pythona za pomocą
pip install --upgrade package_name
-
Aby wyjść z wersji virtualenv i python wystarczy wpisać "deactivate"
UPDATE
Wydaje się, że --no-site-packages
jest przestarzały. Jest na to Łatwa poprawka: po aktywowaniu virtualenv, po prostu skieruj zmienną HOME env w inne miejsce niż twój rzeczywisty katalog domowy, tj.:
export HOME=some/where/else
Ogólnie dobrym sposobem na to jest:
- Create virtualenv
- Aktywuj virtualenv
- Jeśli chcesz "przetworzyć" istniejące biblioteki do virtualenv, softlink je z twojego istniejących instalacji, tj.
ln -s $HOME/.local/lib/python3.6/site-packages/numpy $PWD/venv/lib/python3.6/site-packages/
- Do
export PYTHONPATH=
,export HOME=/some/other/dir
Teraz powinieneś mieć własny izolowany virtualenv.
UPDATE 2 / SUDO
Nie chcesz zmusić sudo do używania virtualenv?
Defaults secure_path="/home/USENAME/Python-3.x.y/env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
Defaults env_keep += "VIRTUAL_ENV"
Defaults env_keep += "PYTHONPATH"
Teraz spróbuj " sudo python3 -- version "i magia powinna się zdarzyć
UPDATE 3 / DOCKER
Włącz virtualenv wewnątrz Dockera (oczywiście, zbudowałeś go w obrazie Dockera):
ENV VIRTUAL_ENV=/home/USER/Python-3.x.y/env
ENV PYTHONPATH=
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-03 12:19:27
Context: Archlinux
Akcja:
Zainstaluj python2-pip:sudo pacman -S python2-pip
Masz teraz pip2.7:sudo pip2.7 install boto
Test (w moim przypadku potrzebowałem 'boto'):
Uruchom następujące polecenia:
python2
import boto
Sukces: brak błędu.
Exit: Ctrl+D
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-28 15:11:13
Na przykład, jeśli ustawisz inne wersje (np. 3.5) jako domyślne i chcesz zainstalować pip dla Pythona 2.7:
- Pobierz pip na https://pypi.python.org/pypi/pip (tar)
- rozpakuj plik tar
- cd do katalogu pliku Sudo python2.7 setup.py install
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-06 09:02:28
Możesz przejść na przykład C:\Python2.7\Scripts a potem uruchom cmd z tej ścieżki. Następnie można uruchomić pip2. 7 zainstalować yourpackage...
, który zainstaluje pakiet dla tej wersji Pythona.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-16 09:32:19
Jest to prawdopodobnie całkowicie zła rzecz do zrobienia (jestem noobem Pythona), ale po prostu weszłam i edytowałam plik pip
#!/usr/bin/env python3 <-- I changed this line.
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-14 21:03:37
Specjalnie dla windows: \ ścieżka \ do \ python.exe - m pip install PackageName działa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-26 19:17:02
Jeśli masz zainstalowane zarówno python3.6
, jak i python3.7
i chcesz domyślnie używać pip
z python3.7
, Oto co powinieneś zrobić:
Najpierw upewnij się, że masz pip
zainstalowane dla python3.7
python3.7 -m pip install -U pip
Teraz pip3.7
musi być dostępny, więc edytujemy .bashrc
nano ~/.bashrc
Dodanie do niego następującej linijki
alias pip=pip3.7
Aby zmiany weszły w życie wpisz w powłoce:
source ~/.bashrc
Teraz jeśli wpiszesz:
pip --version
Powinieneś dostać:
Pip 20.1.1 od w przypadku python3.7 nie jest to możliwe.]}
Co oznacza, że jeśli użyjesz, na przykład:
pip install <package>
Zainstaluje <package>
dla python3.7
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-27 20:46:59
Innym możliwym sposobem może być użycie conda i pip. Jakiś czas prawdopodobnie chcesz użyć tylko jednego z nich, ale jeśli naprawdę potrzebujesz skonfigurować konkretną wersję Pythona, łączę obie.
-
Tworzę wyjściowe środowisko conda z Pythonem, którego chcę. Jak tutaj https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html . Alternatywnie można skonfigurować całe środowisko tylko za pomocą conda.
conda create -n myenv python=3.6.4
-
Następnie aktywuj swoje środowisko za pomocą Pythona, który lubisz. To polecenie może się zmieniać w zależności od systemu operacyjnego.
source activae myenv
-
Teraz masz aktywny python, możesz nadal używać conda, ale jeśli potrzebujesz / chcesz użyć pip:
python -m pip -r requirements.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-22 09:22:14
Możesz użyć jednego z następujących poleceń:
pip2 install SomePackage
pip3 install SomePackage
python2 -m pip install SomePackage
python3 -m pip install SomePackage
I oczywiście upewnij się, że masz zainstalowaną poprawną wersję pip
sudo apt-get install python-pip
sudo apt-get install python3-pip
Sam nie używałem tych poleceń, ale niektóre odpowiedzi powyżej sugerują użycie ich do określenia dokładnie wersji Pythona, której chcesz użyć
pip-2.7 install SomePackage
python-3.6 -m pip install SomePackage
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-14 18:47:22
Dla Blendera:
/usr/bin $ python3.7 -m pip install irc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-14 08:41:37