Ich verwende Bash unter Windows, bereitgestellt von MSYS.
Ich habe versucht, eine Python-Datei mit einem Shebang von auszuführen #!/usr/bin/env python
, aber ich erhalte die folgende Fehlermeldung:
/usr/bin/env: python: No such file or directory
Was kann ich tun, damit dies funktioniert?
Ich weiß, dass ich die Python-Datei durch python
Suffixen starten kann , aber ich möchte, dass sie auch ohne das Suffix funktioniert.
env
, wie es der Fragesteller tut.which env
undwhich python
undtype python
?Sie könnten an einem Python Launcher für Windows interessiert sein
quelle
Was passiert beim Ausführen (von der Shell):
..?
Wenn eine interaktive Python-Sitzung gestartet wird, kann Python gefunden werden. (Sie können auch einfach ausführen :)
type python
. Wenn "keine solche Datei oder kein solches Verzeichnis" gedrucktpython
wird, wird es in Ihrem PFAD nicht gefunden. Überprüfen Sie, ob Folgendes optimiert werden kann, um das Problem zu beheben (Leerzeichen im Pfad / to / python verursachen wahrscheinlich Probleme):quelle
Es stellte sich heraus, dass die
activate.sh
Datei von Virtualenv und MSYSGIT nicht übereinstimmen. Es war nie beabsichtigt, unter Windows zu arbeiten.quelle
Neueste Versionen von Windows 10 unterstützen die Installation von Linux-Subsystemen. Wenn Sie von dort laufen, sollten die Pfade korrekt sein.
Es sollte eine funktionierende Lösung sein, wenn Sie damit einverstanden sind.
quelle
Die Wurzel des Problems ist , dass Räume in Bauden als Zufuhr zusätzliche Argumente zu einem ausführbaren interpretiert werden, so
C:\Program Files\Python\python.exe
werden , wie gesehenC:\Program
gegebenFiles\Python\python.exe
als Argument.Die beste Lösung dafür, da Windows Leerzeichen im
$HOME
Verzeichnis und anProgram Files
anderen Stellen LIEBT, obwohl es in cmd.exe und Powershell und anderen Tools wirklich Probleme verursachen kann, ist:Installieren Sie Python
C:\Python
und fügen Sie denC:\Python
Ordner, in dem sichpython.exe
dasScripts
Verzeichnis befindet, und das darin befindliche Verzeichnis IhrerPATH
Umgebungsvariablen auf System- oder Benutzerebene hinzu.Wenn Sie Python 2.7.x und 3.x zu koexistieren müssen, installieren Sie sie in
C:\Python27
undC:\Python36
undC:\Python37
und benennen Sie diepython.exe
zupython2.exe
,python36.exe
,python37.exe
, etc. und jeder dieser Ordner und deren fügenScripts
Ordner in diePATH
. Möglicherweise möchten Sie festlegen, welche der Python 3-Versionen Sie als "Standard" verwenden möchten, und in diesem Ordner eine Kopie erstellenpython3.exe
, um alle verwendeten Skripts zu verarbeiten!#/usr/bin/env python3
.Wenn in Ihrem Benutzer-Ausgangsverzeichnis ein Leerzeichen vorhanden ist, können auch Probleme auftreten, wenn Sie die
pip install --user somepackage
Syntax verwenden. Die--user
Standardeinstellungen sind Ihr Ausgangsverzeichnis, und der Speicherplatz wird auch in diesem Fall die Dinge auslösen. Die Problemumgehung wird hier beschrieben , läuft jedoch darauf hinaus, PYTHONUSERBASE in Ihre Umgebung zu exportieren.oder in Windows (Powershell):
quelle