J'utilise Bash sur Windows, fourni par MSYS.
J'ai essayé d'exécuter un fichier Python avec un shebang de #!/usr/bin/env python
, mais je reçois ce message d'erreur:
/usr/bin/env: python: No such file or directory
Que puis-je faire pour que cela fonctionne?
Je sais que je peux lancer le fichier Python en le suffixant avec python
, mais je veux qu'il fonctionne aussi sans le suffixe.
env
, comme le fait le demandeur.which env
etwhich python
ettype python
?Vous pourriez être intéressé par un lanceur Python pour Windows
la source
Que se passe-t-il lorsque vous exécutez (à partir du shell):
..?
S'il démarre une session python interactive, alors python peut être trouvé. (Vous pouvez également exécuter simplement:)
type python
. S'il affiche "aucun fichier ou répertoire", ilpython
n'est pas trouvé dans votre PATH. Voyez si les éléments suivants peuvent être modifiés pour résoudre le problème (les espaces dans le chemin / vers / python causeront probablement des problèmes):la source
Je me suis avéré être un décalage entre le
activate.sh
fichier de Virtualenv et MSYSGIT. Il n'a jamais été conçu pour fonctionner sous Windows.la source
Les dernières versions de Windows 10 prennent en charge l'installation de sous-systèmes Linux. Si vous exécutez à partir de là, les chemins doivent être corrects.
Cela devrait être une solution de travail si vous êtes d'accord pour le faire de cette façon.
la source
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é commeC:\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 leC:\Python
dossier oùpython.exe
réside et leScripts
répertoire qui y réside à votrePATH
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
etC:\Python36
etC:\Python37
et renommerpython.exe
àpython2.exe
,python36.exe
,python37.exe
, etc et ajouter chacun de ces dossiers et leursScripts
dossiers dans lePATH
. 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 dossierpython3.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.ou sous Windows (Powershell):
la source