我有一个奇怪的情况,我需要将Python源文件上传到测试服务器进行评估,但我想将我的应用程序组织成多个文件/模块/包.不幸的是,测试服务器不受我的控制,所以我无法修改它以允许我上传包含我的代码的ZIP文件.
有没有简单的方法来获取包含应用程序的大量Python源文件并自动将它们减少为单个源文件(或.pyc文件)?为简单起见,只有一个文件被认为是"入口点"并且有一个if __name__ == '__main__'
.最终文件仍然需要由Python解释器执行,因此我不能使用Python-to-EXE生成器.
如果您无法上传 zip 文件,也许您可以遵循此处包含的一些建议。这个想法是创建并上传一个脚本文件,其中包含一个 Python shebang 行(被解释器忽略),并添加到 zip 文件存档中。然后,您可以让 Python 解释器直接读取 zip 文件,也可以从 shell 执行它。要实现此功能,您至少需要使用 Python 2.6。
zip testapp.zip *
echo '#!/usr/bin/env python' | cat - testapp.zip > testapp.py
chmod 755 testapp.py
Run Code Online (Sandbox Code Playgroud)
要执行以下任一操作:
python testapp.py
Run Code Online (Sandbox Code Playgroud)
或者:
./testapp.py
Run Code Online (Sandbox Code Playgroud)
正如博客文章中所讨论的,根据您需要支持的 Python 版本以及您需要的功能,您可能需要对源布局进行各种调整,以包含必要的文件__main__.py
和__init__.py
文件来创建正确的包并__main__.py
在主包目录之外创建一个符号链接。这有点混乱,但是一旦你让它工作起来,它应该很容易自动化,假设你的测试服务器可以处理这样的伪文本文件。这里的关键点是 Python 解释器本身正在读取和解压缩 zip 存档,而不是外部程序。
如果测试服务器可以处理标准 POSIX shell 脚本,另一个选择可能是创建一个脚本,将所有内容包装到一个大脚本中的一组此处文件中。
归档时间: |
|
查看次数: |
329 次 |
最近记录: |