J'ai rencontré ce léger problème lorsque je cherchais à accéder à des installations python à partir d'ArcGIS, QGIS, Anaconda (cité parce que SciPy et NumPy viennent avec), et la version 2.7 vs 3. Parfois, je trouve plus facile de simplement passer dans Windows Command Prompt
pour faites un peu de travail rapide au lieu d'ouvrir un programme SIG ou un IDE python afin d'accéder à l'invite interactive.
Au lieu de naviguer dans chaque dossier, de définir des raccourcis ou de désactiver la PATH
variable d'environnement, je voulais une manière différente d'accéder à chaque installation de python via le Command Prompt
.
Éditer
Les professionnels SIG qui utilisent python pour leur travail finissent par avoir à accéder manuellement à chaque installation afin d'accéder aux fonctionnalités qui s'y trouvent. Au lieu d'attendre le chargement d'ArcMap, il est généralement beaucoup plus rapide d' appuyer sur votre winkey -r + cmd et de taper python
dans votre invite de commande pour démarrer la console python. Si vous souhaitez utiliser ArcPy
pour reprojeter un fichier de formes, vous devez ouvrir votre console python, qui est liée à ArcPy
. Si vous souhaitez utiliser un outil à partir de PyQGIS
parce que vous ne disposez pas de la licence ESRI appropriée, vous devez trouver celui python.exe
qui est lié à ces modules. Cela peut être une douleur quand vous essayez de faire un travail en ArcPy
, PyQGIS
, NumPy
ouSciPy
sans que toutes les bibliothèques soient installées de manière cohérente en une seule installation python.
En règle générale, vous êtes lié par votre Path
variable à laquelle l'installation de python est votre installation par défaut dans le Command Prompt
. Cette question et les réponses qui suivent visent à déterminer comment les professionnels SIG peuvent utiliser plusieurs installations Python ensemble dans un même environnement. Les IDE Python ciblent une seule installation python et nécessitent de modifier les paramètres afin d'en utiliser différents. Par exemple, mon PyScripter
installation cible mon installation ArcGIS de Python. Donc, si je veux utiliser mes PyQGIS
modules, je dois ouvrir QGIS ou modifier les paramètres dans PyScripter
.
Lors de l'écriture de modules / scripts complets, il est logique d'en cibler un individuellement. De cette façon, vous pourriez obtenir une sorte de complétion de code. Cependant , lorsque vous êtes en utilisant des outils dans chaque installation pour manipuler un ensemble de données, il serait beaucoup mieux si vous pouvez parcourir rapidement les consoles de python / installations dans un seul écran alias le Command Prompt
.
À ceux qui votent pour fermer / hors sujet ...
Bien que cela s'applique évidemment à tout ce à quoi le langage python est attaché , pour le pauvre utilisateur de SIG qui ne peut pas se permettre d'acheter des extensions ESRI pour des outils d'analyse de données, cela leur permet de simplifier leur vie. Comme certaines des réponses l'ont montré, le fait de pouvoir personnaliser davantage ce processus, par exemple ajouter des arguments aux .cmd
fichiers, pourrait potentiellement être très utile si quelqu'un exécute un processus personnalisé. Il existe un potentiel pour un utilisateur de SIG / ordinateur plus averti de pouvoir configurer des .cmd
fichiers personnalisés pour exécuter rapidement des processus sans avoir à passer par l’agitation de gérer différentes installations de logiciels IDE / SIG, etc.
Le seul inconvénient de l'exécution d'une console python dans le Command Prompt
est la perte de complétion de code. Cependant, si vous exécutez quelque chose d'assez, par exemple arcpy.AddField_management()
, la complétion de code ne fait qu'empêcher.
Réponses:
Je vais proposer une alternative qui je pense est un peu plus propre. Il est inspiré d'une combinaison de la suggestion de Josef et d'un modèle commun sur les systèmes * nix.
Commencez par créer un répertoire. Ce répertoire sera utilisé pour contenir les fichiers "alias" pour chaque installation. Donc, quelque chose comme
C:\Python\aliases
ouC:\PythonAliases
fonctionnera.Créez ensuite un script pour chaque installation. Chaque script alias essentiellement l'une des installations Python que vous devez référencer en appelant simplement son exécutable. Par exemple, le contenu ressemblerait à ceci pour l'installation de QGIS:
Enregistrez-le avec un nom descriptif dans le dossier que vous avez créé, tel que
pyqgis.cmd
oupyqgis.bat
.Le
%*
passe tous les arguments qui ont été donnés au script dans l'exécutable Python à la place. Vous pouvez donc faire ceci:(Le
@
symbole empêche simplement l'invite de commande de faire écho inutilement la commande.)Ajoutez le répertoire contenant ces scripts dans
PATH
. Vous pouvez maintenant les appeler sans le chemin complet:Cela présente plusieurs avantages, à mon avis:
PATH
qu'une seule fois. Obtenir de nouvelles installationsPATH
ou en supprimer d'anciennes est une gestion de fichiers simple.python2
etpython3
dans lebin
répertoire sur une machine * nix. Bien que ce ne soit pas exactement la même chose, je pense que c'est assez similaire pour que cela ait du sens pour quelqu'un sachant que cela se fait sur les systèmes * nix.Je ne suis pas entièrement satisfait de cette configuration, mais je ne pense pas que vous puissiez faire beaucoup mieux sous Windows.
la source
J'ai décidé de jouer avec la
System Variables
partie desEnvironment Variables
paramètres pour voir si je peux faciliter l'accès à chaque installation de python pendant que dans leCommand Prompt
. J'ai trouvé que je pouvais en ajouter un nouveauSystem Variable
et l'appeler depuis leCommand Prompt
pour accéder à l'installation de python que je voulais.Quelques exemples:
Variable =
PyQGIS
Valeur ="C:\Program Files\QGIS Dufour\bin\Python.exe"
J'ai laissé les guillemets doubles là-dedans donc je n'aurais pas à citer l'espacement dans le
Command Prompt
pour garder la chaîne entière ensemble comme un seul argumentVariable =
Anaconda
Valeur =AnacondaDirectory\Python.exe
Comment accéder à mes installations de scipy / numpy / etc
Variable =
Python3
Valeur =C:\Python34\Python.exe
Python 3 inclut un lanceur qui vous permet de spécifier la version ... >>
py -3
pour python 3 ... info iciPour appeler un
System Variable
dans leCommand Prompt
:Lorsque vous êtes dans le
Command Prompt
, vous pouvez appeler votre variable en tapant%VariableName%
dans l'invite de commande. Pour chaque installation de python, il naviguera vers le{Directory}\Python.exe
pour ouvrir l'interpréteur interactif. Si vous n'avez pas cité de valeur contenant des espaces, vous devez ajouter des guillemets autour de votre appel de variable, par exemple."%VariableValueWithSpaces%"
. Sans les guillemets, la ligne est divisée par les espaces afin que votre programme ne démarre pas.Je suis sûr qu'il existe probablement des façons plus faciles de faire les choses, mais j'ai trouvé que c'était un peu utile si vous aimez particulièrement utiliser
Command Prompt
Windows. J'aime la possibilité d'accéder à des installations python individuelles simplement en fournissant un nom de variable différent.la source
@set PATH=C:\Python34\;%PATH%
. Ensuite, la simple saisie de python34 rendra ce python disponible.Path
variable?