py2exe很棒,只要我想打包一个python程序在Windows系统上运行,我就会使用它.
我的问题是,是否有一个等效的工具,我可以用来在Windows上打包程序,但我可以在Linux上运行?
这里也是支持Linux,MacOS和Windows的PyInstaller - 我还没有使用它(但是)所以我不知道你是否可以在windows上为Linux打包,但是看一遍手册似乎是可能的.
编辑: 在回答问题明确规定,你不能从Linux创建Linux上的窗户包,并没有MAC OS包没有-没有什么关于从其他两个来源创建一个Linux软件包,但它可能无法正常工作.
编辑2: 谷歌搜索后我找到了cx_freeze,这也许值得一看.
我真的怀疑你可以做那样的事情.
你可以做的就是为自己配置3个构建虚拟机,一个用于Windows,一个用于MacOS,一个用于Linux,用于运行程序所需的每个虚拟机.
然后使用py2exe/py2app/pyinstaller的组合为每个平台生成分发.你将有3个不同的pacakges,但每个pacakges将很好地包装,不需要在客户端机器上安装任何其他东西.
好的,我已经做到了。这有点 hacky,但它非常适合我的用例。
其要点是使用 ModuleFinder 查找所有导入的模块,过滤掉任何系统模块,编译它们并压缩它们。
不幸的是,我的代码充满了与这个问题没有任何相关性的额外复杂性,所以我无法粘贴工作程序,只能粘贴一些片段:
zipfile = ZipFile(os.path.join(dest_dir, zip_name), 'w', ZIP_DEFLATED)
sys.path.insert(0, '.')
finder = ModuleFinder()
finder.run_script(source_name)
for name, mod in finder.modules.iteritems():
filename = mod.__file__
if filename is None:
continue
if "python" in filename.lower():
continue
subprocess.call('"%s" -OO -m py_compile "%s"' % (python_exe, filename))
zipfile.write(filename, dest_path)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24987 次 |
| 最近记录: |