
Ich habe ein Problem, die PYC-Datei auf einem Rechner mit Ubuntu Server 18.04.4 LTS auszuführen.
Dies ist mein Quellcode der Datei:
#!/root/PycharmProjects/Project/venv/bin/python3.7
print("Hi")
Wenn ich es in der Python-Konsole mit den Befehlen kompiliere:
import py_compile
py_compile.compile('test2.py')
Ich erhalte die Datei test2.cpython-37.pyc. Dann füge ich Ausführungszugriff hinzu durch
chmod +x test2.cpython-37.pyc
Wenn ich renne
./test2.cpython-37.pyc
Auf der ersten Maschine (Ubuntu Server 18.04.4 LTS) erhalte ich ein einfaches „Hi“.
Aber wenn ich eine ähnlich kompilierte Datei auf einem anderen Rechner mit demselben Betriebssystem – Ubuntu Server 18.04.4 LTS – ausführe, erhalte ich:
./test2.cpython-37.pyc: line 1: $'B\r\r': command not found
./test2.cpython-37.pyc: line 2: syntax error near unexpected token `)'
./test2.cpython-37.pyc: line 2: `z�p^=�@s
ed�dS)ZHiN)�print�rrtest2.py<module>�'
Es sieht so aus, als würde es Windows-Zeilenenden lesen. Aber warum? Es wird auf einem Ubuntu-Rechner erstellt, kompiliert und ausgeführt.
Wie kann ich dieses Problem lösen und diese PYC-Datei mit dem richtigen Ergebnis auf dem zweiten Computer ausführen?
BEARBEITEN: Auf beiden Maschinen ist es das gleiche Ergebnis von
ls /proc/sys/fs/binfmt_misc
register status