Welche Datei bearbeite ich und wie? Ich habe eine virtuelle Umgebung erstellt.
virtualenvwrapperBefehl. Es ist nicht Teil von virtualenv.
Welche Datei bearbeite ich und wie? Ich habe eine virtuelle Umgebung erstellt.
virtualenvwrapperBefehl. Es ist nicht Teil von virtualenv.
Antworten:
EDIT # 2
Die richtige Antwort ist @ arogachevs .
Wenn Sie die PYTHONPATHin einer virtuellen Umgebung verwendete bin/activateDatei ä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 PYTHONPATHjedes 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/postdeactivateSkript 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 .pthDatei erstellen , die das zu suchende Verzeichnis enthält, und es im site-packagesVerzeichnis 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/pathzu sys.pathund bleibt lokal im virtualenvSetup.
$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 popdDann 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 PYTHONPATHbeim Aktivieren / Deaktivieren gespeichert / wiederhergestellt wird.
Das gepatchte activateSkript 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")