Python Pyinstaller exe在其他计算机上不工作(使用其他windows版本。)

Python Pyinstaller exe在其他计算机上不工作(使用其他windows版本。),python,Python,我的平台是Windows10和Python 3.9。另一台计算机(Windows server 2008R2)没有Python。因此,我想在我的计算机上使用pyinstaller,在另一台计算机上使用.exe 我尝试了简单的脚本print(“hello”)并使用了pyinstaller-F myscript.py .exe在我的计算机上工作,但在另一台计算机上失败 错误 加载python dll~python39.dll时出错 我应该使用Python 3.8吗?或者我该怎么办?问题是Pyinst

我的平台是Windows10和Python 3.9。另一台计算机(Windows server 2008R2)没有Python。因此,我想在我的计算机上使用
pyinstaller
,在另一台计算机上使用
.exe

我尝试了简单的脚本
print(“hello”)
并使用了
pyinstaller-F myscript.py

.exe
在我的计算机上工作,但在另一台计算机上失败

错误 加载python dll~python39.dll时出错


我应该使用Python 3.8吗?或者我该怎么办?

问题是Pyinstaller不会创建完全独立的可执行文件,它会创建依赖项(例如,这个python39.dll),因此这个python39.dll应该在运行这个可执行文件的计算机上。因为您的计算机上已经安装了python,所以python39.dll已经存在,并且一切正常。问题是你运行这个程序的机器可能没有它

要解决此问题,有几种解决方案:

  • 在目标计算机上安装python 3.9(但在这种情况下,您不需要创建可执行文件)
  • 在程序中包含python39.dll
  • 对于第二个解决方案,只需创建一个文件夹,并将可执行文件以及这个python39.dll库移动到其中。Windows将找到它,因为它与此可执行文件位于同一目录中。您可以从c:\Windows\System32文件夹(或系统上存储所有DLL的地方)获取此库,然后将其与可执行文件一起复制到文件夹中。在此之后,不仅可以发送可执行文件,还可以发送包含库的此文件夹

    @Stepan在评论中写道,您也可以通过在编译时向命令中添加二进制“path\to\python39.dll”将此库包含在可执行文件中。最后的命令如下所示:


    pyinstaller-F——添加二进制文件“c:\Windows\System32\python39.dll”myscript.py

    问题是pyinstaller不能创建完全独立的可执行文件,它会创建依赖项(例如,这个python39.dll),因此这个python39.dll应该在运行这个可执行文件的计算机上。因为您的计算机上已经安装了python,所以python39.dll已经存在,并且一切正常。问题是你运行这个程序的机器可能没有它

    要解决此问题,有几种解决方案:

  • 在目标计算机上安装python 3.9(但在这种情况下,您不需要创建可执行文件)
  • 在程序中包含python39.dll
  • 对于第二个解决方案,只需创建一个文件夹,并将可执行文件以及这个python39.dll库移动到其中。Windows将找到它,因为它与此可执行文件位于同一目录中。您可以从c:\Windows\System32文件夹(或系统上存储所有DLL的地方)获取此库,然后将其与可执行文件一起复制到文件夹中。在此之后,不仅可以发送可执行文件,还可以发送包含库的此文件夹

    @Stepan在评论中写道,您也可以通过在编译时向命令中添加二进制“path\to\python39.dll”将此库包含在可执行文件中。最后的命令如下所示:


    pyinstaller-F——添加二进制文件“c:\Windows\System32\python39.dll”myscript.py

    检查操作系统类型,如果我记得很清楚,如果是32位,而您的程序是64位,则无法打开。确保您创建了32位版本,以便在两台电脑上都能运行,即使两台电脑的CPUboth都是64位。但我会再次检查并尝试,谢谢。请告诉我,以防过去我也遇到过同样的问题;)pyinstaller是一种痛苦。上次我试的时候没用。我用了cx_冷冻,效果很好。如果你愿意,可以继续使用pyinstaller,但如果事情不顺利,请尝试寻找替代方法。查看操作系统类型,如果我记得很清楚,如果是32位,而你的程序是64位,则无法打开。确保您创建了32位版本,以便在两台电脑上都能运行,即使两台电脑的CPUboth都是64位。但我会再次检查并尝试,谢谢。请告诉我,以防过去我也遇到过同样的问题;)pyinstaller是一种痛苦。上次我试的时候没用。我用了cx_冷冻,效果很好。如果你愿意,可以继续使用pyinstaller,但如果事情不顺利,请尝试寻找替代方法