我有一个使用Pyinstaller创建的Python.exe文件。当我在自己的PC上执行该命令时,它运行良好,但是如果将其移至网络上的另一台PC,则会显示错误弹出消息“检测到致命错误,无法执行脚本__”。
我需要在网络上的任何计算机上运行此Python exe,即使它们没有安装Python。
我使用下面的代码,并将所有内容打包到dist文件夹中的一个.exe文件中。
pyinstaller -F -w script.py
即使没有安装Python,我也需要在网络上的任何计算机上运行此Python.exe。这可能吗?
答案 0 :(得分:1)
请注意,pyinstaller
是针对其创建的特定操作系统而量身定制的(它特别取决于C的实现,由PyInstaller在ubuntu
上使用glibc
创建的应用与运行alpine
的{{1}}不兼容)。
而且,它本身不是独立的可执行文件,它捆绑了Python解释器。
您可以在pyinstaller docs中找到更多信息。
我发现最简单的解决方法是使用Docker并使用multistage build创建您的应用。
如果这不是一种选择,则可能必须使用Cython或其他方法。
答案 1 :(得分:0)
我能够找到解决该问题的方法。
我重新运行没有-w的pyinstaller,并在cmd中看到错误消息“ InterfaceError:(('IM002','[IM002] [Microsoft] [ODBC驱动程序管理器]数据源名称未找到,并且未指定默认驱动程序。“
我的脚本使用了pyodbc,我正在研究,发现将驱动程序更改为"Driver={SQL Server}
;”。我最初将其更改为"Driver={SQL Server Native Client 11.0};"
,所以一旦将其更改为SQL Server,可执行文件文件在其他计算机上运行良好。