Ich bin der Autor von Hamilton C Shell . Es klingt, als würden Sie Cygwin mit meiner C-Shell verwenden und beim Versuch, Python zu verwenden, die folgende Fehlermeldung angezeigt:
1 C% python csh(C:\cygwin64\bin\python line 1): Couldn't open 'symlink' as a redirected standard input. > in C:\cygwin64\bin\python < called from line 1
Das Problem ist, dass der Cygwin-Python-Befehl eine symbolische Link-Datei ist, die nur aus Cygwin besteht, und nicht eine tatsächlich ausführbare Datei. Sie werden nur von Cygwin unterstützt . (Möglicherweise haben Sie bemerkt, dass cmd.exe es auch nicht ausführt.) Folgendes ist enthalten:
2 C% whereis python C:\cygwin64\bin\python 3 C% cat `!!` cat `whereis python` !<symlink>python2.7.exe
Da die C-Shell sie nicht als etwas anderes erkennen konnte, versuchte sie, sie als Skript zu interpretieren. Sie glaubte, dass sie einen I / O-Umleitungsoperator für die !<
C-Shell erkannte, jedoch keine Datei mit dem Namen finden konnte, daher die Fehlernachricht.symlink
Da diese Datei jedoch lediglich zur eigentlichen ausführbaren Datei umgeleitet wird, können Sie dasselbe mit einem C-Shell-Alias tun, den Sie in Ihrer Datei startup.csh speichern können:
4 C% alias python python2.7 5 C% python Python 2.7.10 (default, Jun 1 2015, 18:05:38) [GCC 4.9.2] on cygwin Type "help", "copyright", "credits" or "license" for more information. >>> quit() 6 C% cd desktop 7 C% cat MyScript.py print("Hello") 8 C% python MyScript.py Hello
Wenn Sie Ihre Python-Skripts direkt von der C-Shell aus ausführen möchten, ohne den Python-Befehl eingeben zu müssen, unterstützt die C-Shell die allgemeine #!
Syntax, um den Python-Interpreter zu verwenden. Beachten Sie jedoch, dass es immer noch den Namen der aktuellen ausführbaren Datei benötigt. Hier ist ein Beispiel:
9 C% cat MyScript2.py #!python2.7 print("Hello") 10 C% MyScript2.py Hello 11 C%