
Ubuntu Server 18.04.4 LTS を搭載した 1 台のマシンで pyc ファイルを実行する際に問題が発生します。
これはファイルのソースコードです:
#!/root/PycharmProjects/Project/venv/bin/python3.7
print("Hi")
Python コンソールでコマンドを使用してコンパイルすると、次のようになります。
import py_compile
py_compile.compile('test2.py')
test2.cpython-37.pycファイルを取得します。次に、実行アクセスを追加します。
chmod +x test2.cpython-37.pyc
もし私が走ったら
./test2.cpython-37.pyc
最初のマシン (Ubuntu Server 18.04.4 LTS) では、単純な「Hi」が表示されます。
しかし、同じ OS (Ubuntu Server 18.04.4 LTS) を搭載した他のマシンで同様にコンパイルされたファイルを実行すると、次のようになります。
./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>�'
Windows の行末を読み取っているように見えます。しかし、なぜでしょうか? これは Ubuntu マシン上で作成、コンパイル、実行されます。
この問題を解決し、2 台目のマシンでこの pyc ファイルを正しい結果で実行するにはどうすればよいですか?
編集: どちらのマシンでも結果は同じです
ls /proc/sys/fs/binfmt_misc
register status