Ich lief über dieses kleine Problem , wenn ich war auf der Suche nach Zugang Python - Installationen von ArcGIS, QGIS, Anaconda (zitiert , weil SciPy & NumPy mit ihm kommen), und Version 2.7 vs 3. Manchmal finde ich es einfacher, nur in Windows - Pop Command Prompt
zu Arbeiten Sie schnell, anstatt ein GIS-Programm oder eine Python-IDE zu öffnen, um auf die interaktive Eingabeaufforderung zuzugreifen.
Anstatt zu jedem Ordner zu navigieren, Verknüpfungen festzulegen oder die PATH
Umgebungsvariable auszuschalten , wollte ich eine andere Möglichkeit, über die auf jede Python-Installation zuzugreifen Command Prompt
.
Bearbeiten
GIS-Experten, die Python für ihre Arbeit verwenden, müssen letztendlich manuell auf jede Installation zugreifen, um auf die darin enthaltenen Funktionen zugreifen zu können. Statt zu Last auf so etwas wie ArcMap wartet, ist es in der Regel viel schneller Ihre treffen winkey -r + cmd und geben Sie python
in der Eingabeaufforderung zu starten , die Python - Konsole. Wenn Sie ArcPy
ein Shapefile neu projizieren möchten , müssen Sie Ihre Python-Konsole öffnen, die mit verknüpft ist ArcPy
. Wenn Sie ein Tool von verwenden möchten, PyQGIS
weil Sie nicht über die entsprechende ESRI-Lizenz verfügen, müssen Sie das finden, das python.exe
mit diesen Modulen verknüpft ist. Dies kann ein Schmerz sein , wenn Sie versuchen , Arbeit zu tun in ArcPy
, PyQGIS
, NumPy
oderSciPy
ohne dass alle Bibliotheken zusammenhängend als eine Python-Installation installiert sind.
In der Regel sind Sie an Ihre Path
Variable gebunden , an die die Python-Installation in der Command Prompt
. Diese Frage und die folgenden Antworten zeigen, wie GIS-Experten möglicherweise mehrere Python-Installationen zusammen in einer einzigen Umgebung verwenden können. Python-IDEs zielen auf eine einzelne Python-Installation ab und erfordern das Ändern von Einstellungen, um andere zu verwenden. Beispielsweise PyScripter
zielt meine Installation auf meine ArcGIS-Installation von Python ab. Wenn ich meine PyQGIS
Module verwenden möchte , muss ich QGIS öffnen oder die Einstellungen in ändern PyScripter
.
Wenn Sie Module / vollständige Skripte schreiben, ist es sinnvoll, eines einzeln anzuvisieren. Auf diese Weise kann es zu einer Art Code-Vervollständigung kommen. Allerdings , wenn Sie nur einige Werkzeuge in jeder Installation unter Verwendung eines Datensatzes zu manipulieren, wäre es viel schöner , wenn Sie schnell Flip Python - Konsolen / Installationen innerhalb eines einzigen Bildschirm auf aka das Command Prompt
.
An diejenigen, die zum Abschluss / Off-Topic abstimmen ...
Obwohl dies offensichtlich für alles gilt, an das die Python-Sprache angehängt ist , dient es für den armen GIS-Benutzer, der es sich nicht leisten kann, ESRI-Erweiterungen für Datenanalysetools zu kaufen, als Möglichkeit, sein Leben zu vereinfachen. Wie einige der Antworten gezeigt haben, kann die Möglichkeit, diesen Prozess stärker anzupassen, z. B. Argumente zu .cmd
Dateien hinzuzufügen , möglicherweise von großem Nutzen sein, wenn jemand einen benutzerdefinierten Prozess ausführt. Ein erfahrener GIS- / Computerbenutzer kann möglicherweise benutzerdefinierte .cmd
Dateien einrichten, um Prozesse schnell auszuführen, ohne sich um die Installation verschiedener IDEs / GIS-Software usw. kümmern zu müssen.
Der einzige Nachteil beim Ausführen einer Python-Konsole innerhalb von Command Prompt
ist der Verlust der Code-Vervollständigung. Wenn Sie jedoch etwas genug ausführen, z. B. arcpy.AddField_management()
, wird die Code-Vervollständigung nur behindert.
Antworten:
Ich werde eine Alternative anbieten, die ich für etwas sauberer halte. Es ist inspiriert von einer Kombination aus Josefs Vorschlag und einem gemeinsamen Muster auf * nix-Systemen.
Erstellen Sie zunächst ein Verzeichnis. In diesem Verzeichnis werden "Alias" -Dateien für jede Installation gespeichert. Also so etwas wie
C:\Python\aliases
oderC:\PythonAliases
wird funktionieren.Als nächstes erstellen Sie ein Skript für jede Installation. Jedes Skript aliasisiert im Wesentlichen eine der Python-Installationen, auf die Sie verweisen müssen, indem Sie einfach die ausführbare Datei aufrufen. Beispielsweise würde der Inhalt für die QGIS-Installation folgendermaßen aussehen:
Speichern Sie es mit einem aussagekräftigen Namen in dem von Ihnen erstellten Ordner, z. B.
pyqgis.cmd
oderpyqgis.bat
.Das
%*
übergibt stattdessen alle Argumente, die dem Skript gegeben wurden, an die ausführbare Python-Datei. So können Sie Folgendes tun:(Das
@
Symbol verhindert lediglich, dass die Eingabeaufforderung den Befehl unnötig wiederholt.)Fügen Sie das Verzeichnis mit diesen Skripten hinzu
PATH
. Jetzt können Sie sie ohne den vollständigen Pfad aufrufen:Dies hat meiner Meinung nach mehrere Vorteile:
PATH
einmal. Das Installieren neuerPATH
oder das Entfernen alter Installationen ist eine einfache Dateiverwaltung.python2
undpython3
imbin
Verzeichnis auf einem * nix-Computer zu sehen. Dies ist zwar nicht genau das Gleiche, aber ich denke, es ist ähnlich genug, dass es für jemanden Sinn macht, zu wissen, dass dies auf * nix-Systemen geschieht.Ich bin mit dieser Einrichtung nicht ganz zufrieden, aber ich glaube nicht, dass Sie unter Windows viel besser abschneiden können.
quelle
Ich habe mich entschlossen, mit dem
System Variables
Teil derEnvironment Variables
Einstellungen herumzuspielen, um zu sehen, ob ich den Zugriff auf jede Python-Installation im Internet erleichtern kannCommand Prompt
. Ich fand heraus, dass ich eine neue hinzufügenSystem Variable
und von dort aus aufrufen konnte, um auf dieCommand Prompt
gewünschte Python-Installation zuzugreifen.Einige Beispiele:
Variable =
PyQGIS
Wert ="C:\Program Files\QGIS Dufour\bin\Python.exe"
Ich habe die doppelten Anführungszeichen dort belassen, damit ich den Abstand in nicht in Anführungszeichen setzen muss
Command Prompt
, um die gesamte Zeichenfolge als ein einziges Argument zusammenzuhaltenVariable =
Anaconda
Wert =AnacondaDirectory\Python.exe
Wie ich auf meine Installationen von scipy / numpy / etc. Zugreife
Variable =
Python3
Wert =C:\Python34\Python.exe
Python 3 enthält einen Launcher, mit dem Sie die Version ... >>
py -3
für Python 3 ... hier angeben könnenSo rufen Sie ein
System Variable
in derCommand Prompt
:Wenn Sie sich in der befinden
Command Prompt
, können Sie Ihre Variable aufrufen, indem Sie sie%VariableName%
in die Eingabeaufforderung eingeben . Bei jeder Python-Installation navigiert es zu{Directory}\Python.exe
, um den interaktiven Interpreter zu öffnen. Wenn Sie keinen Wert mit Leerzeichen angegeben haben, müssen Sie Anführungszeichen um Ihren Variablenaufruf hinzufügen, z."%VariableValueWithSpaces%"
. Ohne die Anführungszeichen wird die Zeile durch die Leerzeichen geteilt, sodass Ihr Programm nicht gestartet wird.Ich bin mir sicher, dass es wahrscheinlich einfachere Möglichkeiten gibt, Dinge zu tun, aber ich fand, dass dies ein nützliches Stück Wissen ist, wenn Sie das
Command Prompt
in Windows besonders gern verwenden . Ich mag die Möglichkeit, auf einzelne Python-Installationen zuzugreifen, indem nur ein anderer Variablenname angegeben wird.quelle
@set PATH=C:\Python34\;%PATH%
. Wenn Sie dann python34 eingeben, wird diese Python verfügbar.Path
Variable an?