Welche Datei bearbeite ich und wie? Ich habe eine virtuelle Umgebung erstellt.
virtualenvwrapper
Befehl. Es ist nicht Teil von virtualenv
.
Welche Datei bearbeite ich und wie? Ich habe eine virtuelle Umgebung erstellt.
virtualenvwrapper
Befehl. Es ist nicht Teil von virtualenv
.
Antworten:
EDIT # 2
Die richtige Antwort ist @ arogachevs .
Wenn Sie die PYTHONPATH
in einer virtuellen Umgebung verwendete bin/activate
Datei ändern möchten, können Sie der Datei Ihrer virtuellen Umgebung die folgende Zeile hinzufügen :
export PYTHONPATH="/the/path/you/want"
Auf diese Weise wird das neue PYTHONPATH
jedes Mal festgelegt, wenn Sie diese virtuelle Umgebung verwenden.
EDIT: (um @ RamRachums Kommentar zu beantworten)
Um den ursprünglichen Wert wiederherzustellen deactivate
, können Sie hinzufügen
export OLD_PYTHONPATH="$PYTHONPATH"
und fügen Sie Ihrem bin/postdeactivate
Skript die folgende Zeile hinzu .
export PYTHONPATH="$OLD_PYTHONPATH"
deactivate
?
PYTHONPATH
(die globale) anstelle des lokalen Pfads virtualenv hat?
Der Kommentar von @ s29 sollte eine Antwort sein:
Eine Möglichkeit, der virtuellen Umgebung ein Verzeichnis hinzuzufügen, besteht darin, virtualenvwrapper zu installieren (was für viele Dinge nützlich ist) und dann zu tun
mkvirtualenv myenv
workon myenv
add2virtualenv . #for current directory
add2virtualenv ~/my/path
Wenn Sie diesen Pfad entfernen möchten, bearbeiten Sie die Datei myenvhomedir/lib/python2.7/site-packages/_virtualenv_path_extensions.pth
Die Dokumentation zu virtualenvwrapper finden Sie unter http://virtualenvwrapper.readthedocs.org/en/latest/
Eine spezifische Dokumentation zu dieser Funktion finden Sie unter http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html?highlight=add2virtualenv
add2virtualenv -d
Sie können eine .pth
Datei erstellen , die das zu suchende Verzeichnis enthält, und es im site-packages
Verzeichnis ablegen. Z.B:
cd $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
echo /some/library/path > some-library.pth
Der Effekt ist der gleiche wie beim Hinzufügen /some/library/path
zu sys.path
und bleibt lokal im virtualenv
Setup.
$VIRTUALENV_ROOT/lib/pythonX.Y/site-packages
. Dokumente zu .pth-Dateien: docs.python.org/3.6/library/site.html
pushd "$(venv/bin/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")" ...path/to/project/venv/lib/python3.7/site-packages ...path/to/project echo ../../../../src > my_project.pth popd
Dann habe ich meine virtuelle Umgebung deaktiviert und reaktiviert. Ich konnte jetzt Projektcode ausführen, bei dem ich wissen musste, wo sich mein Projektverzeichnis befand.
/bin/activate
) ist ein Fehlverhalten, und die Installation von Tools von Drittanbietern ist schlechter als die Verwendung einer integrierten Methode, um dies zu erreichen.
cd venv
source bin/activate
export PYTHONPATH='/home/django/srmvenv/lib/python3.4'
python
\>\> import sys
\>\> sys.path
Ich habe mein Aktivierungsskript so geändert .virtualenvrc
, dass es die Datei als Quelle enthält , sofern sie im aktuellen Verzeichnis vorhanden ist, und PYTHONPATH
beim Aktivieren / Deaktivieren gespeichert / wiederhergestellt wird.
Das gepatchte activate
Skript finden Sie hier.. Es ist ein Drop-In-Ersatz für das von virtualenv 1.11.6 erstellte Aktivierungsskript.
Dann habe ich so etwas zu meinem hinzugefügt .virtualenvrc
:
export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}/some/library/path"
Hier wird es bereits beantwortet -> Verursacht meine virtuelle Umgebung (Python), dass mein PYTHONPATH kaputt geht?
Fügen Sie "export PYTHONPATH = / usr / local / lib / python2.0" in die Datei ~ / .bashrc ein und geben Sie "source ~ / .bashrc" OR ". ~ / .Bashrc" ein.
1) Gehen Sie zur Systemsteuerung. 2) Doppelklicken Sie auf System. 3) Gehen Sie zur Registerkarte Erweitert. 4) Klicken Sie auf Umgebungsvariablen
Überprüfen Sie im Fenster Systemvariablen, ob Sie eine Variable mit dem Namen PYTHONPATH haben. Wenn Sie bereits eines haben, überprüfen Sie, ob es auf die richtigen Verzeichnisse verweist. Wenn Sie noch keine haben, klicken Sie auf die Schaltfläche Neu und erstellen Sie sie.
Alternativ können Sie auch unter Ihrem Code Folgendes tun: -
import sys
sys.path.append("/home/me/mypy")