我在 Windows 中编写了一个 python 程序,然后使用 pyinstaller 将其制作成 .exe 文件。但是该 python 程序在 Linux 中无法运行。为什么?
答案1
你写的程序很可能将要在 Ubuntu 中可以运行,但由于 Linux 和 Windows 的 API 结构非常不同,因此您需要在 Linux 系统上的 Python 解释器中重新编译或运行该程序才能使其运行。Linux 通常无法识别 Windows.exe
文件,但如果您安装了 Wine,您的系统可能会尝试将该程序当作 Windows 程序来运行,使用 Wine 来服务其系统调用——这甚至可能有效,具体取决于您的 pyinstaller 如何构造可执行文件。
答案2
正如其他答案中提到的,在编译之前尝试在 Python 解释器中运行。
可能需要更改一些代码。例如,如果您的原始程序包含:
INPUT_FNAME='\Documents\python_datain\today.csv
它必须改为:
INPUT_FNAME='~/Documents/python_datain/today.csv'
如果它是低级 Python 并且执行诸如在屏幕上移动鼠标、关闭弹出浏览器窗口以及调整屏幕亮度和色温等操作,则需要进行许多更改xdotool
,xrandr
并可能添加对的调用wmctrl
。