Ich mache Python-Versionsverwaltung, Bibliotheksverwaltung, Verwaltung der virtuellen Umgebung mit pyenv + pipenv auf dem Mac, aber eines Tages, als ich versuchte, die virtuelle Umgebung von pipenv zu aktivieren, bekam ich den folgenden Fehler und konnte sie nicht aktivieren ..
$ pipenv shell
Traceback (most recent call last):
File "/usr/local/Cellar/pipenv/2018.11.26_4/libexec/bin/pipenv", line 5, in <module>
from pipenv import cli
ModuleNotFoundError: No module named 'pipenv'
Der Fehler ist, dass pipenv nicht gefunden werden kann, aber wenn ich in das Verzeichnis gehe, in dem pipenv selbst gespeichert ist, kenne ich die Ursache dieses Fehlers nicht, da er dort normalerweise vorhanden ist. Ich habe diesen Fehler erhalten, als ich versucht habe, die virtuelle Umgebung in einem anderen Verzeichnis zu aktivieren, und festgestellt habe, dass pipenv defekt ist. Wenn Sie die Ursache kennen, bedeutet dies, dass Sie den Mac nach langer Zeit neu gestartet haben. Es ist nicht bestätigt, aber vielleicht ist es passiert, als ich mit einigen Dingen in der virtuellen Umgebung neu gestartet habe. Übrigens, vor ein paar Tagen ist auch mein Junior in dieses Symptom geraten, und obwohl ich von einem Universitätslehrer unterstützt wurde, ohne die Ursache zu kennen, habe ich es gelöst, indem ich pyenv und pipenv neu installiert habe, also habe ich es selbst versucht und es wurde geheilt. Ich werde eine Reihe von Arbeiten als Memorandum aufbewahren.
Löschen Sie zunächst das vorhandene pyenv und pipenv. Hier ist es nicht erforderlich, die Pipfile usw. zu löschen, die die Bibliothek verwaltet. Lassen Sie es für den sofortigen Wiederaufbau bereit, basierend auf den in der Pipfile enthaltenen Informationen. Da sich dieser Artikel auf die Neuerstellung der virtuellen Umgebung von pyenv + pipenv konzentriert, wird davon ausgegangen, dass diese Umgebungen ursprünglich verwendet werden und die Einstellungen von Pipfile, Pifile.lock, .bash_profile und zshrc nicht manipuliert werden müssen. schreiben.
--Überprüfen Sie den Pfad von Python, den Sie verwenden
$ which python
>>> /Users/xxx/.pyenv/shims/python
$ rm -rf /Users/xxx/.pyenv
$ brew uninstall pyenv
$ brew uninstall pipenv
Jetzt ist es Zeit, die Tools neu zu installieren.
$ brew install pyenv
$ brew install pipenv
$ pyenv install 3.6.7
$ pyenv install 3.7.5
$ pyenv global 3.7.5
$ python -V
>>> Python 2.7.10
Es wurde nicht reflektiert. Als ich überprüfte, welches Python ich verwendete, schien es, dass ich das Mac-Standard-Python verwendete.
$ which python
>>> /usr/bin/python
Apropos, um pyenvs Python mit einer Pfadspezifikation wie `/ Users / xxx / .pyenv / shims / python``` verwenden zu können, schreiben Sie Folgendes in`
.bash_profile``` Ich erinnerte mich, was ich getan hatte. Der zsh-Benutzer ist eine andere Datei.
export PYENV_ROOT=${HOME}/.pyenv
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
Reflektieren Sie die obigen Einstellungen erneut und überprüfen Sie, welches Python Sie erneut verwenden.
$ source .bash_profile
$ which python
>>> /Users/xxx/.pyenv/shims/python
Es wurde bestätigt, dass es Python von Pyenv normal unterstützt.
Von hier aus geht es darum, die von pipenv verwaltete virtuelle Umgebung neu zu erstellen.
cd Das Verzeichnis, in dem Sie eine virtuelle Umgebung erstellen möchten
pipenv --python 3.7.5
pipenv shell
pipenv install
Damit ist die Neuerstellung der virtuellen Umgebung abgeschlossen.
Ich habe in der englischen Literatur nach dem eingangs erwähnten Fehler gesucht, aber ich konnte keine Person mit dem gleichen Symptom finden, und die Ursache ist immer noch unbekannt, aber es gibt eine symptomatische Behandlung, also keine Panik und gehe ruhig damit um.
Pipenv und pyenv neu installiert Löschen Sie pyenv ordnungsgemäß und fügen Sie es erneut ein