Installieren Sie ein Modul mit pip für eine bestimmte Python-Version

138

Unter Ubuntu 10.04 ist standardmäßig Python 2.6 installiert, dann habe ich Python 2.7 installiert. Wie kann ich pip installPakete für Python 2.7 installieren?

Beispielsweise:

pip install beautifulsoup4

Standardmäßig wird BeautifulSoup für Python 2.6 installiert

Wenn ich es tue:

import bs4

in Python 2.6 funktioniert es, aber in Python 2.7 heißt es:

No module named bs4
Torayeff
quelle
1
Mögliches Duplikat des Umgangs mit mehreren Python-Versionen und PIP?
Trevor Boyd Smith

Antworten:

54

Verwenden Sie eine Version von pipinstalliert für die Python-Instanz, auf der Sie neue Pakete installieren möchten.

In vielen Distributionen kann es getrennt sein python2.6-pipund python2.7-pipPakete, aufgerufen mit binären Namen wie pip-2.6und pip-2.7. Wenn pip nicht in Ihrer Distribution für das gewünschte Ziel gepackt ist, suchen Sie möglicherweise nach einem setuptools- oder easyinstall-Paket oder verwenden virtualenv (das pip in einer generierten Umgebung immer enthält).

Die Website von pip enthält Installationsanweisungen , falls Sie in Ihrer Distribution nichts finden können.

Charles Duffy
quelle
6
Ich habe weder pip-2.6 noch pip-2.7
torayeff
1
@torayeff Haben Sie nach versionenspezifischen Pip-Paketen gesucht? Die Verpackung ist verteilungsspezifisch, daher müssen Sie entweder selbst ein wenig arbeiten (die verfügbaren Paketlisten durchsuchen) oder einen Ubuntu-spezifischen Support-Kanal fragen.
Charles Duffy
1
Ich habe versucht, diese easy_install -d /usr/local/lib/python2.7/ beautifulsoup4, aber es funktioniert nicht, was meinst du mit Beinarbeit?
Torayeff
3
@torayeff Für easy_install gilt dasselbe wie für pip - Sie sollten eine Version verwenden, die für den Interpreter erstellt wurde, für den Sie Pakete installieren möchten. "Beinarbeit" ist eine Umgangssprache, die sich auf Anstrengung bezieht, typischerweise von einer Art, die nicht besonders intellektuell herausfordernd ist, aber zeitaufwändig sein kann (denken Sie an einen Job, der Zeit erfordert, um herumzulaufen) ... in diesem Fall überprüfen Sie die Ubuntu-Paketlisten.
Charles Duffy
1
@torayeff ... und wieder, wenn Sie kein Ubuntu-Paket von pip finden oder einfach für Python 2.7 installieren können, können Sie pip von Hand gemäß den Anweisungen installieren, auf die ich in meiner Antwort verwiesen habe. Stellen Sie nur sicher, dass Sie die python2.7ausführbare Datei verwenden, wenn Sie diese Anweisungen durchgehen.
Charles Duffy
189

Da es pipselbst in Python geschrieben ist, können Sie es alternativ auch mit der Python-Version aufrufen, für die Sie das Paket installieren möchten:

python2.7 -m pip install foo
Turion
quelle
1
Da ich mit pip in einer virtuellen Umgebung installiere (aber in einigen Fällen mit eingestelltem PYTHONPATH gegen das Systempython ausführen muss - z. B. wenn etwas verwendet wird, das von wxPython abhängt), ist dies der Befehl, der für mich funktioniert hat.
Aaron D
6
BESTE Lösung für alle Python2- und Python3-Probleme!
Harte Vardhan Ladha
9
Ich sollte beachten, dass der richtige Weg, um ein Modul in Python python 2.7 -m pip install foo
aufzurufen,
2
Ich kann diese Antwort nicht genug bewerten. Endlich gelöst dieses schmerzhafte Problem auf DietPi (Raspberry Distribution)
Pitto
1
@Sergio Es sieht so aus, als ob das -m für mich am falschen Ort ist. Ich denke, der Befehl sollte eher so lauten wiepy37 -m "location-of-pip" install numpy
jrh
53

Sie können das Pip-Modul für eine bestimmte Python-Version mit dem entsprechenden Python ausführen :

Python 2.6:

python2.6 -m pip install beautifulsoup4

Python 2.7

python2.7 -m pip install beautifulsoup4
Tiago Coutinho
quelle
3
Ich habe viele Male im Internet nach diesem Befehl gesucht. Ich denke, die meisten Leute verwenden eine virtuelle Umgebung, um dieses Problem zu lösen, aber für mich ist dies eine viel praktikablere Strategie.
Dave Liu
Was ist, wenn ich mich in meinem Python-Skript befinde, das pip install beautifulsoup4 aufruft? Wie kann ich sicherstellen, dass das Skript mit dem Flag -m aufgerufen wurde?
Ogen
Dies war das letzte Stück meines Puzzles, danke! pipund pip3waren beide für mich an python3.X gebunden, also musste ich diese Methode als Umweg verwenden, um pip für python2.7 zu installieren
airdas
25

Sie können diese Syntax verwenden

python_version -m pip install your_package

Beispielsweise. Wenn Sie python3.5 ausführen, haben Sie es als "python3" bezeichnet und möchten das numpy-Paket installieren

python3 -m pip install numpy
Catbuilts
quelle
Dies ist wie meine Antwort, aber besser, da es nicht mit Systempfaden herumspielen muss.
Turion
Es scheint, dass dies jetzt die beste Antwort wäre. Hat auch bei mir perfekt funktioniert.
LogicOnAbstractions
18

In Windows können Sie das Pip-Modul ausführen, indem Sie die Python-Version angeben (Sie müssen sicherstellen, dass sich der Launcher auf Ihrem Pfad befindet).

py -2 -m pip install pyfora
Mounica T.
quelle
1
Thansk. Es ist in meinem Fall aufgewacht. Ich habe 3.4 und 3.7 Version. Ich musste py -3.7 -m pip install -r
require.txt ausführen
6

Wenn Sie alternativ eine bestimmte Version des Pakets mit der bestimmten Version von Python installieren möchten, ist dies der richtige Weg

sudo python2.7 -m pip install pyudev=0.16

Wenn das "=" nicht funktioniert, verwenden Sie ==

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

Ungültige Anforderung: 'pyudev = 0.16' = ist kein gültiger Operator. Meinten Sie ==?

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

funktioniert gut

ravi.zombie
quelle
4

Python 2

sudo pip2 install johnbonjovi  

Python 3

sudo pip3 install johnbonjovi
David McCorkle
quelle
1
Dies funktioniert nicht, wenn Sie mehrere Installationen von haben python3. Ich habe 3.4und 3.5, und ich kann pip installnichts dafür 3.4.
Byxor
3

Wenn Sie sowohl die 2.7- als auch die 3.x-Version von Python installiert haben, benennen Sie die Python-Exe-Datei der Python 3.x-Version einfach in "python.exe" in "python3.exe" um. Jetzt können Sie pip für beide Versionen einzeln verwenden. Wenn Sie normalerweise "pip install" eingeben, wird standardmäßig die Version 2.7 berücksichtigt. Wenn Sie es auf der 3.x-Version installieren möchten, müssen Sie den Befehl als "python3 -m pip install" aufrufen.

Bhaskar Bhuyan
quelle
2

Für Python 3

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

Für Python 2

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

Unter Debian / Ubuntu pipist dies der Befehl, der bei der Installation von Paketen für Python 2 verwendet werden soll, während pip3der Befehl bei der Installation von Paketen für Python 3 verwendet werden soll.

Gayan Weerakutti
quelle
Diese Antwort fällt, wenn Sie beide beispielsweise Python3.6 und Python3.7 haben. Dann installiert pip3 Pakete nur für Standard-Python3.
Muyustan
2

für python2 verwenden:

py -2 -m pip install beautifulsoup4
amalik2205
quelle
1

Wie bei jedem anderen Python-Skript können Sie die Python-Installation angeben, mit der Sie es ausführen möchten. Sie können dies in Ihr Shell-Profil einfügen, um den Alias ​​zu speichern. Das $1bezieht sich auf das erste Argument, das Sie an das Skript übergeben.

# PYTHON3 PIP INSTALL V2
alias pip_install3="python3 -m $(which pip) install $1"
RKelley
quelle
0

Ich hatte 2,7 Python über installierte chocolatey unter Windows und gefunden pip2.7.exein C:\tools\python2\Scripts.

Wenn Sie diese ausführbare Datei anstelle des pipBefehls verwenden, wird das richtige Modul für mich installiert ( requestsfür Python 2.7).

CodeManX
quelle
0

Ich hatte ein ähnliches Problem mit einem anderen Paket namens Twisted. Ich wollte es für Python 2.7 installieren, aber es wurde nur für Python 2.6 (Standardversion des Systems) installiert.

Eine einfache Änderung vorzunehmen hat bei mir funktioniert.

Wenn Sie den Pfad von Python 2.7 zu Ihrer $PATHVariablen hinzufügen , hängen Sie ihn wie folgt an die Vorderseite an PATH=/usr/local/bin:$PATH, damit das System diese Version verwendet.

Wenn Sie weitere Probleme haben, können Sie diesem Blog-Beitrag folgen, der mir geholfen hat - https://github.com/h2oai/h2o-2/wiki/installing-python-2.7-on-centos-6.3.-follow-this-sequence -genaue-für-Centos-Maschine-nur

Raji
quelle