.PY到.EXE Python 2.6

时间:2011-02-24 02:50:39

标签: python sockets py2exe

我正在尝试将我的.PY脚本转换为.EXE文件,在此过程中,我使用以下命令行尝试了PY2EXE。 python C:\Users\Noob\Desktop\setup.py py2exe -p ftplib - > -p ftplib用于我的模块导入。 当我使用这段代码时,我留下了一个.EXE和一堆文件,如果我把.EXE拿出去,那么它会出现错误。它需要有“_socket.pyd”和“python26.dll”,否则会崩溃(程序)。如果没有这些额外的文件,我如何编译它(不必使用PY2EXE或必须使用它)? 非常感谢!

2 个答案:

答案 0 :(得分:1)

你不应该从你的文件夹中取出exe并执行。只需从创建的dist目录执行它,它就有可执行文件所需的python26.dll。如果要发货,请压缩dist目录并发送。否则,您必须使用NSIS等特定安装程序软件创建安装程序。 我希望你看一下Python2.6 specific section,其中有关于如何编写data_files以包含msvcr90.dll的详细信息

另外,我发现这个-p ftplib cmd选项很新。通常所做的一切都在setup.py中。你能指出提到这种选项规范的地方吗?

答案 1 :(得分:1)

可以用py2exe创建单个文件可执行文件,setup.py文件看起来像这样:

from distutils.core import setup
import py2exe

setup(
    console=['yourscript.py'], # list of scripts to convert into console exes 
    zipfile=None, # library files in exe instead of zipfile (defaults to "library.zip")
    options = {
        'py2exe': {
            'bundle_files': 1, # bundle dlls and python interpreter in the exe
         }
    }
)

有关详细信息,请参阅py2exe's list of options。另外看看“那些文件是什么?”问题来自FAQ

您可能还想看一下PyInstaller(如果您需要,可能会更好地创建包含Microsoft MSVCR * .DLL文件的单个文件exe)确保{{3 }}