Zainstaluj moduł za pomocą pip dla określonej wersji języka Python

138

W systemie Ubuntu 10.04 domyślnie zainstalowany jest Python 2.6, a następnie zainstalowałem Python 2.7. Jak mogę pip installzainstalować pakiety dla Pythona 2.7.

Na przykład:

pip install beautifulsoup4

domyślnie instaluje BeautifulSoup dla Pythona 2.6

Kiedy robię:

import bs4

w Pythonie 2.6 działa, ale w Pythonie 2.7 jest napisane:

No module named bs4
torayeff
źródło

Odpowiedzi:

54

Użyj wersji pipInstall dla instancji Pythona, w której chcesz zainstalować nowe pakiety.

W wielu dystrybucjach mogą istnieć osobne python2.6-pipi python2.7-pippakiety, wywoływane z nazwami binarnymi, takimi jak pip-2.6i pip-2.7. Jeśli pip nie jest spakowany w twojej dystrybucji dla żądanego celu, możesz poszukać pakietu setuptools lub easyinstall albo użyć virtualenv (który zawsze będzie zawierał pip w wygenerowanym środowisku).

Witryna pip zawiera instrukcje instalacji , jeśli nie możesz znaleźć niczego w swojej dystrybucji.

Charles Duffy
źródło
6
Nie mam ani pip-2.6, ani pip-2.7
torayeff
1
@torayeff Czy szukałeś pakietów pip specyficznych dla wersji? Pakowanie jest specyficzne dla dystrybucji, więc będziesz musiał wykonać samodzielnie trochę pracy (przeszukiwanie dostępnych list pakietów) lub poprosić kanał wsparcia dla Ubuntu.
Charles Duffy
1
Wypróbowałem to easy_install -d /usr/local/lib/python2.7/ beautifulsoup4, ale to nie działa, co masz na myśli przez legwork?
torayeff
3
@torayeff to samo dotyczy easy_install, co pip - powinieneś użyć wersji zbudowanej na interpreter, dla którego próbujesz zainstalować pakiety. „praca na nogach” to potoczny termin odnoszący się do wysiłku, zwykle w jego odmianie, która nie jest szczególnie wymagająca intelektualnie, ale może być czasochłonna (myślę podobną do pracy, która wymaga spędzenia czasu na spacerowaniu) ... w tym przypadku przegląd Listy pakietów Ubuntu.
Charles Duffy
1
@torayeff ... i znowu, jeśli nie możesz znaleźć pakietu pip dla Ubuntu lub łatwej instalacji specyficznej dla Pythona 2.7, możesz zainstalować pip ręcznie, postępując zgodnie z instrukcjami, do których dołączyłem w mojej odpowiedzi; po prostu upewnij się, że używasz python2.7pliku wykonywalnego podczas przeglądania tych instrukcji.
Charles Duffy
189

Alternatywnie, ponieważ pipsam jest napisany w Pythonie, możesz po prostu wywołać go wersją Pythona, dla której chcesz zainstalować pakiet:

python2.7 -m pip install foo
Turion
źródło
1
Ponieważ instaluję za pomocą pip w środowisku wirtualnym (ale w niektórych przypadkach muszę go uruchamiać na systemowym pythonie, z ustawionym PYTHONPATH - np. Podczas używania czegokolwiek, co zależy od wxPython), jest to polecenie, które działało dla mnie.
Aaron D
6
NAJLEPSZE rozwiązanie wszystkich problemów z Python2 i Python3!
Harsh Vardhan Ladha
9
Powinienem zauważyć, że właściwy sposób wywołania modułu w Pythonie topython 2.7 -m pip install foo
llrs
2
Nie mogę wystarczająco dobrze zagłosować za tą odpowiedzią. Wreszcie rozwiązałem ten bolesny problem na DietPi (dystrybucja Raspberry)
Pitto
1
@Sergio Wygląda na to, że -m jest w złym miejscu dla mnie, myślę, że polecenie powinno być bardziej podobnepy37 -m "location-of-pip" install numpy
jrh
53

Możesz wykonać moduł pip dla określonej wersji języka Python za pomocą odpowiedniego języka Python:

Python 2.6:

python2.6 -m pip install beautifulsoup4

Python 2.7

python2.7 -m pip install beautifulsoup4
Tiago Coutinho
źródło
3
Wiele razy przeszukiwałem internet w poszukiwaniu tego polecenia. Wydaje mi się, że większość ludzi używa wirtualnego środowiska do rozwiązania tego problemu, ale jest to dla mnie bardziej realna strategia.
Dave Liu
Co się stanie, jeśli znajdę się wewnątrz mojego skryptu Pythona, który wywołuje pip install beautifulsoup4. Jak mogę się upewnić, że skrypt został wywołany z flagą -m?
Ogen
To był ostatni element mojej układanki, dziękuję! pipi pip3oba były dla mnie zablokowane na python3.X, więc musiałem użyć tej metody jako
okrężnego
25

Możesz użyć tej składni

python_version -m pip install your_package

Na przykład. Jeśli używasz python3.5, nazwałeś go „python3” i chcesz zainstalować pakiet numpy

python3 -m pip install numpy
Catbuilts
źródło
To jest jak moja odpowiedź, ale lepsza, ponieważ nie musi majstrować przy ścieżkach systemowych.
Turion
Wygląda na to, że teraz byłaby to najlepsza odpowiedź. U mnie też się sprawdził.
LogicOnAbstractions
18

W systemie Windows możesz uruchomić moduł pip, wspominając o wersji Pythona (musisz upewnić się, że program uruchamiający jest na Twojej ścieżce)

py -2 -m pip install pyfora
Mounica T
źródło
1
Thansk. W moim przypadku zadziałało. Mam wersję 3.4 i 3.7. Musiałem uruchomić py -3.7 -m pip install -r
Requirements.txt,
6

Alternatywnie, jeśli chcesz zainstalować określoną wersję pakietu z określoną wersją Pythona, jest to sposób

sudo python2.7 -m pip install pyudev=0.16

jeśli „=” nie działa, użyj ==

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev=0.16

Nieprawidłowe wymaganie: „pyudev = 0.16” = nie jest prawidłowym operatorem. Czy chodziło Ci o ==?

x@ubuntuserv:~$ sudo python2.7 -m pip install pyudev==0.16

działa w porządku

ravi.zombie
źródło
4

Python 2

sudo pip2 install johnbonjovi  

Python 3

sudo pip3 install johnbonjovi
David McCorkle
źródło
1
To nie działa, gdy masz wiele instalacji python3. Mam 3.4i 3.5i nie mogę pip installza nic 3.4.
byxor
3

Jeśli masz zainstalowane wersje Pythona 2.7 i 3.x, po prostu zmień nazwę pliku python exe wersji python 3.x na coś w rodzaju - „python.exe” na „python3.exe”. Teraz możesz używać pip dla obu wersji indywidualnie. Jeśli normalnie wpiszesz „pip install”, domyślnie rozważy się wersję 2.7. Jeśli chcesz zainstalować go w wersji 3.x, musisz wywołać polecenie jako „python3 -m pip install”.

Bhaskar Bhuyan
źródło
2

W przypadku Pythona 3

sudo apt-get install python3-pip
sudo pip3 install beautifulsoup4

W przypadku Pythona 2

sudo apt-get install python2-pip
sudo pip2 install beautifulsoup4

W systemie Debian / Ubuntu pipjest to polecenie używane podczas instalowania pakietów dla języka Python 2, natomiast pip3jest to polecenie używane podczas instalowania pakietów dla języka Python 3.

Gayan Weerakutti
źródło
ta odpowiedź pojawia się, gdy oboje macie na przykład python3.6 i python3.7. Następnie pip3 zainstaluje pakiety tylko dla domyślnego python3.
muyustan
2

dla python2 użyj:

py -2 -m pip install beautifulsoup4
amalik2205
źródło
1

Podobnie jak w przypadku każdego innego skryptu w języku Python, możesz określić instalację języka Python, z którą chcesz go uruchomić. Możesz umieścić to w swoim profilu powłoki, aby zapisać alias. $1Odnosi się do pierwszego argumentu możesz przekazać do skryptu.

# PYTHON3 PIP INSTALL V2
alias pip_install3="python3 -m $(which pip) install $1"
RKelley
źródło
0

Miałem Pythona 2.7 zainstalowanego przez czekoladę w systemie Windows i znalazłem pip2.7.exew C:\tools\python2\Scripts.

Użycie tego pliku wykonywalnego zamiast pippolecenia zainstalowało dla mnie odpowiedni moduł ( requestsdla Pythona 2.7).

CodeManX
źródło
0

Miałem podobny problem z innym pakietem o nazwie Twisted. Chciałem go zainstalować dla Pythona 2.7, ale został zainstalowany tylko dla Pythona 2.6 (domyślna wersja systemu).

Dokonanie prostej zmiany zadziałało dla mnie.

Dodając ścieżkę Pythona 2.7 do swojej $PATHzmiennej, dołącz ją z przodu w następujący PATH=/usr/local/bin:$PATHsposób:, aby system używał tej wersji.

Jeśli napotkasz więcej problemów, możesz śledzić ten post na blogu, który mi pomógł - https://github.com/h2oai/h2o-2/wiki/installing-python-2.7-on-centos-6.3.-follow-this-sequence -dokładnie-dla-centos-tylko-maszyna

Raji
źródło