2011-02-24 48 views
1

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

回答

1

您不应该将exe从您的文件夹中取出并执行。只需从dist目录中执行它,它就有可执行文件需要的python26.dll。如果您想要发货,请将dist目录压缩并发货。否则,您必须使用特定的安装程序软件(如NSIS)创建安装程序。 我希望你拿了一看Python2.6 specific section,这对如何写data_files包括MSVCR90.DLL

而且,我发现这个-p ftplib CMD选项漂亮的新细节。通常,所有要做的事情都在setup.py中。你能否指出这种选择规范被提及的地方?

+0

您可以将'-p'命令放在bat文件中进行设置。在你的蝙蝠结束时,只需放入'-p modulename'。我敢肯定你可以通过添加一些逗号来添加更多,还不确定。我很抱歉,我找不到关于此主题的任何文档。 – 2011-02-24 07:01:32

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,这似乎做得更好)确保使用use the 1.5 series for python 2.6 on Windows