La racine du problème est que les espaces dans les shebangs sont interprétés comme fournissant des arguments supplémentaires à un exécutable, donc C:\Program Files\Python\python.exe
est considéré comme C:\Program
donné Files\Python\python.exe
comme argument.
La meilleure solution pour cela, car Windows AIME les espaces dans le $HOME
répertoire et dans d' Program Files
autres endroits, même si cela peut vraiment casser des choses dans cmd.exe et Powershell et d'autres outils, est:
Installez Python C:\Python
et ajoutez le C:\Python
dossier où python.exe
réside et le Scripts
répertoire qui y réside à votre PATH
variable d'environnement au niveau du système ou de l'utilisateur.
Si vous avez besoin Python 2.7.x et 3.x à coexister, les installer dans C:\Python27
et C:\Python36
et C:\Python37
et renommer python.exe
à python2.exe
, python36.exe
, python37.exe
, etc et ajouter chacun de ces dossiers et leurs Scripts
dossiers dans le PATH
. Vous voudrez peut-être déterminer laquelle des versions de Python 3 vous voulez être la "valeur par défaut" et également faire une copie dans ce dossier python3.exe
pour gérer les scripts qui utilisent !#/usr/bin/env python3
.
Si votre répertoire personnel contient un espace, vous pouvez également rencontrer des problèmes si vous utilisez la pip install --user somepackage
syntaxe. Les --user
valeurs par défaut de votre répertoire personnel, et l'espace déclenchera également les choses dans ce cas. La solution de contournement est décrite ici mais se résume à l'exportation de PYTHONUSERBASE dans votre environnement.
export PYTHONUSERBASE=/myappenv
pip install --user SomePackage
ou sous Windows (Powershell):
$env:PYTHONUSERBASE='C:\PythonPkgs'
pip install --user SomePackage
env
, comme le fait le demandeur.