加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

将Python应用程序压缩为单个源文件

发布时间:2020-12-16 22:20:45 所属栏目:Python 来源:网络整理
导读:我有一个奇怪的情况,我需要将Python源文件上传到测试服务器进行评估,但我想将我的应用程序组织成多个文件/模块/包.不幸的是,测试服务器不受我的控制,所以我无法修改它以允许我上传包含我的代码的ZIP文件. 有没有简单的方法来获取包含应用程序的大量Python源

我有一个奇怪的情况,我需要将Python源文件上传到测试服务器进行评估,但我想将我的应用程序组织成多个文件/模块/包.不幸的是,测试服务器不受我的控制,所以我无法修改它以允许我上传包含我的代码的ZIP文件.

有没有简单的方法来获取包含应用程序的大量Python源文件并自动将它们减少为单个源文件(或.pyc文件)?为简单起见,只有一个文件被视为“入口点”并且具有if __name__ ==’__ main__’.最终文件仍然需要由Python解释器执行,因此我不能使用Python-to-EXE生成器.

最佳答案
如果您无法上传zip文件,也许您可??以按照here中包含的一些建议进行操作.我们的想法是创建并上传一个脚本文件,其中包含一个zip文件存档前面的Python shebang行(由解释器忽略).然后,您可以让Python解释器直接读取zip文件,也可以从shell执行它.要使其工作,您需要至少使用Python 2.6.

zip testapp.zip *
echo '#!/usr/bin/env python' | cat - testapp.zip > testapp.py
chmod 755 testapp.py

执行任何一个:

python testapp.py

要么:

./testapp.py

正如博客文章中所讨论的,根据您需要支持的Python版本以及您需要的功能,您可能需要对源布局进行各种调整,以包含必要的__main__.py文件和__init__.py文件到创建一个正确的包并在主包目录之外创建符号链接的__main__.py.它有点像kludge但是,一旦你使它工作,它应该很容易自动化,假设您的测试服务器可以处理这样的伪文本文件.这里的关键见解是Python解释器本身正在读取和解压缩zip存档,而不是外部程序.

如果测试服务器可以处理标准POSIX shell脚本,则另一个选项可能是创建一个脚本,将所有内容包装到一个大脚本中的一组here文件中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读