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