2017-03-29 8 views
2

Ich habe einen Windows 7 Rechner mit einer 32-Bit Installation von Anaconda, installiert für den lokalen Benutzer. Die Installation funktioniert wie erwartet: Es ermöglicht mir, Python und Pip über die Befehlszeile, wechseln Umgebungen usw.Einstellung von PYTHONPATH auf Windows unter Anaconda ohne erhöhte Privilegien

Ich habe auch eine Bibliothek von Code, den ich geschrieben habe, sitzt in Eigene Dateien. Ich möchte einen Eintrag wie C:\Users\username\Documents\MyLib zu meinem PYTHONPATH hinzufügen. Dies wäre normalerweise kein Problem, aber ich verfüge nicht über die erhöhten Berechtigungen, die dieser Computer benötigt, um Umgebungsvariablen über die Windows-Benutzeroberfläche zu ändern.

Ich bin auf der Suche nach einer Möglichkeit, PYTHONPATH zu setzen. Ich brauche es nur, um in der Anaconda-Umgebung zu arbeiten (d. H. Ich möchte nur meine Bibliothek mit diesem bestimmten Interpreter importieren können). Lösungen mit sys.path.append in meinen Skripten sind nicht akzeptabel. Ich bin jedoch in Ordnung mit sys.path.append in einem Skript, das automatisch ausgeführt wird, wenn ich python myscript.py ausführen.

Ich vermute, dass es eine Möglichkeit ist aber, um die Berechtigung Einschränkungen über das Windows-Benutzeroberfläche zu erhalten, weil conda info -a ausgeführt zeigt, dass der Installer Anaconda Lage war, Elemente in die PATH einzufügen, insbesondere C:\Users\username\AppData\Local\Continuum\Anaconda3\Library\bin;....

+0

Ich werde versuchen, durch die Benutzerkonten zu gehen und sehen, was passiert. Danke für diesen Tipp. Was die Verwendung eines Batch-Skripts angeht, weiß ich nicht, wie ich es automatisch ausführen lassen kann, bevor Python-Code ausgeführt wird. –

+0

@eryksun. 'cmd.exe' –

+0

Ich habe Ihre Frage missverstanden. Ich benutze hauptsächlich Cmd und Spyder, aber auch IPython und Bash.Ihre Lösung, die Benutzerkontoeinstellungen zu durchlaufen, funktionierte jedoch perfekt. Könntest du eine Antwort darauf schreiben (vielleicht die Informationen über das Schreiben eines Ersatzes für cmd für zukünftige Leser mit einschließen)? –

Antwort

2

In der Systemsteuerung zum Ändern von Benutzerkonten sollte eine Option zum Ändern der Umgebungsvariablen nur für den aktuellen Benutzer vorhanden sein. Es ist bei einigen Versionen von Windows defekt, aber wenn es funktioniert, ist es die einfachste Option.

Wenn das nicht funktioniert, ist die nächste einfachste Option setx.exe in einer Eingabeaufforderung zu verwenden. Es ist standardmäßig der aktuelle Benutzer. Beispiel:

Sie können reg.exe auch verwenden, um die Variable manuell in der Registrierung festzulegen. Aber im Gegensatz zu den oben genannten Optionen sendet dies keine WM_SETTINGCHANGE Nachricht an Top-Level-Windows. Wenn der Explorer diese Nachricht sieht, lädt er seine Umgebung aus der Registrierung neu. Ohne sie müssen Sie sich abmelden und wieder anmelden, um die aktualisierte Umgebungsvariable zu sehen. Mit dieser sagte, hier ist ein Beispiel Befehl reg.exe mit:

reg.exe add HKCU\Environment /f /v PYTHONPATH /d "C:\Users\username\Documents\MyLib" 

Ich bin kein Fan von dauerhaft PYTHONPATH einstellen, weil die gleichen Variable mit jeder Version von Python verwendet wird. Ich würde lieber eine Verknüpfung zu einem Batch-Skript erstellen, das die Umgebung so konfiguriert, wie ich es für eine bestimmte Aufgabe benötige. Beispiel:

@echo off 
set PYTHONPATH=C:\Users\username\Documents\MyLib 
C:\Users\username\Documents\MyEnv\Scripts\activate.bat 

Erstellen Sie eine Verknüpfung zu diesem Stapelscript. Klicken Sie dann mit der rechten Maustaste auf die Verknüpfung und wählen Sie "Eigenschaften". Ändern Sie das Ziel so, dass cmd.exe /k "path\to\the\script.bat" ausgeführt wird.

+0

Normalerweise würde ich Ihnen zustimmen, wenn Sie Umgebungsvariablen setzen, aber für diese spezielle Labormaschine läuft alles von einem einzigen Python 3 Interpreter ab. Es ist unwahrscheinlich, dass wir Py2 verwenden werden, selbst wenn wir Umgebungen mit unterschiedlichen Bibliothekskonfigurationen benötigen. –

2

Da Sie gesagt haben, Sie meist Spyder verwenden, können die folgenden nützlich sein:

Spyder bietet die Möglichkeit, PYTHONPATH durch einen integrierten Manager zu verwalten.

enter image description here

Verwandte Themen