有一种方式来创建一个独立的。exe从python脚本。可执行文件产生的与py2exe可以运行仅有pythonXX.dll.我想获得完全独立。exe这不需要安装python runtime library.它看起来像一个连接的问题,而是使用静态的图书馆,而不是动态之一,它也将应用一条,以便删除的未使用符号。

任何想法?

谢谢。

亚历山德罗

有帮助吗?

解决方案

您可以做到这一点的py2exe的最新版本......结果你setup.py文件只需添加类似下面的代码(关键部分是“bundle_files”:1)。

要包括您的Tkinter的包中的安装中,使用“包括”键。

distutils.core.setup(
      windows=[
            {'script': 'yourmodule.py',
             'icon_resources': [(1, 'moduleicon.ico')]
            }
      ],
      zipfile=None,
      options={'py2exe':{
                         'includes': ['tkinter'],
                         'bundle_files': 1
                        }
      }
  )

其他提示

由于Windows的动态链接器是如何工作的,如果你使用.pyd或.dll Python模块,你不能用静态库;在Windows装载的DLL不会自动与所述可执行分享他们的符号空间,因此需要含有的Python符号的单独的DLL。

如果你的目的具有一个可执行的是为了便于下载和/电子邮件等, 我已经解决了这个通过捆绑的py2exe输出,使用 创新安装.这实际上是更好的比具有一个可执行的,因为,而不是提供一个可执行的文件,该文件可以下降到一些目录,一个很乖的Windows的应用将提供一个卸载,显示在增加/删除的程序等。创新处理所有这个给你。

另一种解决方案是创建具有蟒单个.exe和所有的依赖关系在它的内部安装,包括python.dll。有一点在包装魔法,但它只是工作。的细节在这里:

http://code.google.com /p/pylunch/downloads/detail?name=PyLunch-0.2.pdf

这是没有做到这一点的最好办法,但你可能会考虑使用可执行的自解压文件里面无论是.exe和.dll文件,并设置它来执行你的.exe文件时,它的双重点击。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top