我在装有 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