您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

py2exe的跨平台替代方案

py2exe的跨平台替代方案

好的,我已经做到了。这有点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)
其他 2022/1/1 18:35:08 有437人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶