Python - Installieren Sie das Paket manuell mit virtualenv

82

Ich habe ein Python-Programm, das ich in mein virtualenv installieren möchte - es ist ein Zip-Paket, das ich entpacken und dann ein setup.py-Programm ausführen muss -, aber meine Frage ist eher, wie ich diese entpackten Dateien in mein virtualenv bekomme, damit das Paket wird im Site-Packages-Ordner von virtualenv installiert?

Ich kann auch von meinem virtuellen Gerät aus installieren pip install <package name>, aber aus irgendeinem Grund ist das Paket, das PIP herunterlädt, veraltet.

Kann mir jemand ein paar einfache Schritte zur manuellen Installation eines Pakets nennen?

Bisher habe ich die grundlegenden Befehle zum Laden von Virtualenv:

-bash-3.2$ source ~/.bashrc
-bash-3.2$ workon test
(test)-bash-3.2$ //Now I'm working on my virtualenv, but where do I go after this??

Also - spielt es eine Rolle, wohin ich das Python-Paket / -Programm entpacke - oder sollte ich vor dem Entpacken zuerst bei virtualenv angemeldet sein? Wird sich jedes Python-Paket, das ich unabhängig vom gefundenen Verzeichnis installiere, nach dem Laden der virtualenv und der Verwendung mit dem Befehl 'workon test' selbst im Site-package-Ordner der richtigen virtualenv installieren?

Option 1 besteht darin, das Python-Programm in / home / username / tmp zu entpacken, sich dann bei meiner virtuellen Umgebung anzumelden, zu diesem Ordner zu navigieren und das Programm setup.py auszuführen - vorausgesetzt, die virtuelle Umgebung überträgt alle relevanten Dateien in ihren eigenen Ordner für Site-Pakete .

ODER Szenario 2 besteht darin, die Dateien direkt in Site-Pakete zu entpacken und von dort aus auszuführen (nachdem Sie sich bei virtualenv angemeldet haben) usw.

Vielen Dank, dass Sie einem Python-Clutz dabei helfen!

Jamison
quelle

Antworten:

123

Normalerweise extrahiere ich das Programm in einen temporären Ordner und führe dann aus diesem Ordner die Datei setup.py über den direkten Pfad zur Python-Instanz virtualenv aus. Wenn sich Ihre virtuelle Umgebung beispielsweise in / home / username / virtualpy befindet, verwenden Sie diese (aus Ihrem temporären Ordner).

/home/username/virtualpy/bin/python setup.py install

Dies sollte es in Ihrem virtualenv-Site-Paketordner installieren.

dwelch
quelle
2
Der Importvorgang besteht also darin, Python mit der in der virtuellen Umgebung installierten Version von Python (2.6) auszuführen ... schön! Danke Dwelch.
Jamison
Stellen Sie sicher, dass Sie es aus dem temporären Ordner ausführen. setup.py erwartet wahrscheinlich, dass es sich um den aktuellen Ordner handelt.
Seth
Dies scheint nicht mehr notwendig zu sein. Sobald die virtuelle Umgebung aktiviert ist, starte ich einfach python setup.py installoder python setup.py developund sie wird an der richtigen Stelle installiert.
Oliver
12

gut, wenn Sie in die virtuelle Umgebung wechseln. Sie sollten eingeben

which python

Wenn der Pfad zurückgegeben wird, in dem sich Ihre virtuelle Umgebung befindet, können Sie diesen Befehl direkt ausführen.

$ python setup.py build
$ python setup.py install

Wenn es jedoch den Pfad auf globaler Ebene gibt, der nicht Ihr virtualenv'sPfad ist, sollten Sie versuchen, ihn zu verwenden

$ ~/.virtualenv/python-env/bin/python setup.py build
$ ~/.virtualenv/python-env/bin/python setup.py install
Chitrank Dixit
quelle
0

Wenn ein Paket nicht aus dem Repository installiert werden kann, versuchen Sie es unter venv mit sudo. Als Beispiel für ein Python-Pathos-Paket;

/venv3.6/bin$ sudo pip3 install pathos
Yagmur SAHIN
quelle
0

PACKAGE_DIR = / some / package / directory / path export VENV = $ (pipenv --venv) && export BASE_DIR = $ (pwd) && cd $ PACKAGE_DIR && $ VENV / bin / python setup.py install && cd $ BASE_DIR

Christopher Broderick
quelle