
我在一台使用 Ubuntu Server 18.04.4 LTS 的電腦上執行 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)上,我得到簡單的「嗨」。
但是,如果我在具有相同作業系統的其他電腦上執行類似編譯的檔案 - 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 機器上創建、編譯和運行的。
我怎麼能解決這個問題,並在第二台機器上運行這個 pyc 檔案並得到正確的結果?
編輯: 在兩台機器上都是相同的結果
ls /proc/sys/fs/binfmt_misc
register status