Nef*_*iis 6 python executable exe python-2.7
我一整天都在修补这里和这里的解决方案:
但它不像我想象的那样工作.
我有一个程序,我在过去的6个月里一直在努力,我只是将其中一个功能发给了另一个开发Python工作的开发人员.
我想要做的是使用他的脚本,而不必让用户下载和安装python.
我认为这个问题是1个python脚本调用其他14个python脚本来完成各种任务.
所以我要问的是最好的方法是什么?
是否可以将15个脚本及其所有依赖项打包成1个我可以正常调用的exe文件?或者是否有另一种方法可以将初始脚本打包到exe中,而exe可以正常调用.py脚本?或者我应该只说f'它并在我的安装文件中包含一个python安装程序?
这适用于Python 2.7.6顺便说一句
这就是初始脚本调用其他脚本的方式.
import printSub as ps
import arrayWorker as aw
import arrayBuilder as ab
import rootWorker as rw
import validateData as vd
etc...
Run Code Online (Sandbox Code Playgroud)
如果这是你试图合并这些脚本,你会怎么做呢?
谢谢
您确实可以使用py2exe,它的行为符合您想要的方式。
请参阅上述问题的答案: How will I join multiple .py files into one .exe with Py2Exe
通常,py2exe 将您的主脚本捆绑到 exe 文件,并将所有依赖脚本(它解析您的导入并查找所有必要的 python 文件)捆绑到库 zip 文件(仅限 pyc 文件)。它还收集依赖的 DLL 库并将它们复制到分发目录,以便您可以分发整个目录,并且用户可以从该目录运行 exe 文件。好处是您可以拥有大量脚本(较小的 exe 文件)来使用一个大型库 zip 文件和 DLL。
或者,您可以配置 py2exe 将所有脚本和要求捆绑到 1 个独立的 exe 文件中。exe文件由主脚本、依赖的python文件和所有DLL组成。我在 setup.py 中使用这些选项来完成此任务:
setup(
...
options = {
'py2exe' : {
'compressed': 2,
'optimize': 2,
'bundle_files': 1,
'excludes': excludes}
},
zipfile=None,
console = ["your_main_script.py"],
...
)
Run Code Online (Sandbox Code Playgroud)
工作代码:
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
setup(
options = {
'py2exe' : {
'compressed': 1,
'optimize': 2,
'bundle_files': 3, #Options 1 & 2 do not work on a 64bit system
'dist_dir': 'dist', # Put .exe in dist/
'xref': False,
'skip_archive': False,
'ascii': False,
}
},
zipfile=None,
console = ['thisProject.py'],
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16873 次 |
最近记录: |