Ich bin neu in der Python-Entwicklung und versuche, pipenv zu verwenden. Ich habe den Befehl pip install pipenv
ausgeführt, der erfolgreich ausgeführt wurde:
...
Successfully built pipenv pathlib shutilwhich pythonz-bd virtualenv-clone
Installing collected packages: virtualenv, pathlib, shutilwhich, backports.shutil-get-terminal-size, pythonz-bd, virtualenv-clone, pew, first, six, click, pip-tools, certifi, chardet, idna, urllib3, requests, pipenv
...
Wenn ich jedoch den Befehl pipenv install
in einem neuen Stammverzeichnis des Projektverzeichnisses ausführen, erhalte ich die folgende Meldung: -bash: pipenv: command not found
. Ich habe den Verdacht, dass ich möglicherweise meine .bashrc ändern muss, aber ich bin mir nicht klar, was ich der Datei hinzufügen soll oder ob überhaupt Änderungen erforderlich sind.
Dies geschieht, weil Sie es nicht global (systemweit) installieren. Damit es in Ihrer path
verfügbar ist, müssen Sie es mit Sudo
installieren, wie folgt:
$ Sudo pip install pipenv
Das hat es für mich behoben:
Sudo -H pip install -U pipenv
Wenn Sie eine Benutzerinstallation durchgeführt haben, müssen Sie der Variablen PATH
den richtigen Ordner hinzufügen.
PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
PATH="$PATH:$PYTHON_BIN_PATH"
Ich habe dasselbe Problem mit pipenv
unter Mac OS X 10.13 High Seirra, ein anderer Mac funktioniert einwandfrei. Ich verwende Heroku, um meine Django-Server bereitzustellen, einige in 2.7 und einige in 3.6. Also brauche ich sowohl 2.7 als auch 3.6. Wenn HomeBrew Python installiert, behält python
auf das ursprüngliche 2.7 und python3
auf 3.6.
Das Problem könnte auf $ pip install pipenv
zurückzuführen sein. Ich habe/usr/local/bin überprüft und pipenv ist nicht da. Also habe ich eine vollständige Deinstallation versucht:
$ pip uninstall pipenv
Cannot uninstall requirement pipenv, not installed
You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
$ pip3 uninstall pipenv
Skipping pipenv as it is not installed.
Dann neu installieren und funktioniert jetzt:
$ pip3 install pipenv
Collecting pipenv
OSX-Jungs, hier !!!
Wie @charlax geantwortet hat (für mich die beste), können Sie einen dynamischeren Befehl verwenden, um PATH zu setzen, buuut für Mac-Benutzer könnte dies nicht funktionieren , manchmal ist Ihr USER_BASE-Pfad von der Site falsch Finden Sie heraus, wo sich Ihre Python-Installation befindet.
$ which python3
/usr/local/bin/python3.6
sie erhalten einen Symlink, dann müssen Sie den Symlink der Quelle finden.
$ ls -la /usr/local/bin/python3.6
lrwxr-xr-x 1 root wheel 71 Mar 14 17:56 /usr/local/bin/python3.6 -> ../../../Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
(Dieser ../../../
bedeutet root)
Sie haben also den Python-Pfad (/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
) gefunden, dann müssen Sie ~/.bashrc wie folgt eingeben:
export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.6/bin"
Bevor Sie zu dem Befehl springen, mit dem pipenv
installiert wird, sollten Sie wissen, wo pip
Python - Pakete installiert .
In globalen Site-Paketen installiert Python Pakete, die allen Benutzern und allen Python - Anwendungen auf dem System zur Verfügung stehen. Sie können das globale Site-Paket mit dem Befehl überprüfen
python -m site
Unter Linux mit Python 3.7 lautet der Pfad normalerweise
/usr/lib/python3.7/dist-packages/setuptools
In Benutzer-Site-Paketen installiert Python nur für Sie verfügbare Pakete. Die Pakete sind jedoch weiterhin für alle von Ihnen erstellten Python - Projekte sichtbar. Sie können den Pfad mit erhalten
python -m site --user-base
Unter Linux mit Python 3.7 lautet der Pfad normalerweise
~/.local/lib/python3.7/site-packages
Auf den meisten Linux- und anderen Unices werden normalerweise Python 2 und Python 3 nebeneinander installiert. Die standardmäßige ausführbare Python 3-Datei ist fast immer python3
. pip
ist abhängig von Ihrer Linux-Distribution möglicherweise wie folgt verfügbar
pip3
python3-pip
python36-pip
python3.6-pip
Vermeiden Sie die Verwendung von pip
mit Sudo
! Ja, es ist der bequemste Weg, Python Pakete zu installieren, und die ausführbare Datei ist unter /usr/local/bin/pipenv
verfügbar. Dies bedeutet jedoch auch, dass ein bestimmtes Paket immer für alle Benutzer und alle Python Projekte sichtbar ist du erschaffst. Verwenden Sie stattdessen Site-Pakete für einzelne Benutzer mit --user
.
pip3 install --user pipenv
pipenv
ist unter verfügbar
~/.local/bin/pipenv
Unter macOS ist Homebrew die empfohlene Methode, um Python zu installieren. Sie können Python problemlos aktualisieren, mehrere Versionen von Python installieren und mithilfe von Homebrew zwischen Versionen wechseln.
Wenn Sie Homebrewed Python verwenden, ist pip install --user
deaktiviert. Das globale Site-Paket befindet sich unter
/usr/local/lib/python3.y/site-packages
und Sie können sicher Python Pakete hier installieren. Python 3.y sucht auch nach Modulen in:
/Library/Python/3.y/site-packages
~/Library/Python/3.y/lib/python/site-packages
Aus älteren Gründen ist Python in C:\Python37
installiert. Die ausführbare Datei Python heißt normalerweise py.exe
, und Sie können pip
mit py -m pip
ausführen.
Globale Site-Pakete werden in installiert
C:\Python37\lib\site-packages
Da Sie Ihre Windows-Geräte normalerweise nicht freigeben, ist es auch in Ordnung, ein Paket global zu installieren
py -m pip install pipenv
pipenv
ist ab sofort unter verfügbar
C:\Python37\Scripts\pipenv.exe
Ich empfehle nicht, Python -Pakete unter Windows mit --user
zu installieren, da sich das standardmäßige Site-Package-Benutzerverzeichnis in Ihrem Windows-Roaming-Profil befindet
C:\Users\user\AppData\Roaming\Python\Python37\site-packages
Das servergespeicherte Profil wird in Terminaldiensten (Remotedesktop, Citrix usw.) und beim An- und Abmelden in einer Unternehmensumgebung verwendet. Langsames Anmelden, Abmelden und Neustarten in Windows kann durch ein großes servergespeichertes Profil verursacht werden.
Ich habe das versucht:
python -m pipenv # for python2
python3 -m pipenv # for python3
Hoffe das kann dir helfen.
Die globale Installation von pipenv kann sich nachteilig auswirken, wenn die globale/vom System verwaltete Pip-Installation überschrieben wird, was zu Importfehlern führt, wenn versucht wird, pip auszuführen.
Sie können pipenv auf Benutzerebene installieren:
pip install --user pipenv
Dies sollte pipenv auf Benutzerebene in /home/username/.local installieren, damit es nicht zu Konflikten mit der globalen Version von pip kommt. In meinem Fall funktionierte das nach dem Ausführen des Befehls '--user' immer noch nicht, sodass ich einmal den längeren Befehl 'reparieren, was ich vermasselt hatte', um die verwaltete Systemumgebung wiederherzustellen:
Sudo python3 -m pip uninstall pip && Sudo apt install python3-pip --reinstall
^ hier gefunden: Fehler nach dem Upgrade von pip: Name 'main' kann nicht importiert werden
und tat dann folgendes:
mkdir /home/username/.local
... falls noch nicht vorhanden
export PYTHONUSERBASE=/home/username/.local
Stellen Sie sicher, dass der Export wirksam wurde (bitt mich während dieses Vorgangs einmal):
echo $PYTHONUSERBASE
Dann lief ich den pip install --user pipenv
und alles war gut. Ich konnte dann pipenv von der CLI aus ausführen und das globale/vom System verwaltete Pip-Modul wurde nicht überschrieben. Natürlich ist dies spezifisch für den Benutzer, also möchten Sie sicherstellen, dass Sie pipenv auf diese Weise installieren, wenn Sie als Benutzer arbeiten, den Sie pipenv verwenden möchten.
Verweise:
https://pipenv.readthedocs.io/de/latest/diagnose/#no-module-named-module-namehttps://pipenv.readthedocs.io/de/latest/install/#pragmatic -installation-of-pipenvhttps://pip.pypa.io/de/stable/user_guide/#user-installs
Nach der Installation von pipenv (Sudo pip install pipenv
) wurde beim Versuch, den Befehl pipenv Shell
auszuführen, immer wieder der Fehler "Befehl nicht gefunden" angezeigt.
Ich habe es endlich mit folgendem Code behoben:
pip3 install pipenv
pipenv Shell
Dies ist für mich festgelegt:
Sudo -H pip install -U pipenv
Für Fensterbenutzer kann dies an einem Installationskonflikt mit virtualenv liegen. Bei mir hat es funktioniert, als ich zuerst virtualenv und pipenv deinstalliert und dann nur pipenv installiert habe.
pip uninstall virtualenv
pip uninstall pipenv
pip install pipenv
Jetzt hat pipenv install xxx
für mich gearbeitet
In einigen Fällen der alten pip
-Version:
Sudo easy_install pip
Sudo pip install pipenv
Sie könnten erwägen, pipenv
über pipsi
zu installieren.
curl https://raw.githubusercontent.com/mitsuhiko/pipsi/master/get -pipsi.py | python3
pipsi install pew
pipsi install pipenv
Leider gibt es einige Probleme mit macOS + python3 zum Zeitpunkt des Schreibens, siehe 1 , 2 . In meinem Fall musste ich das bashprompt in #!/Users/einselbst/.local/venvs/pipsi/bin/python
ändern.