ubuntu 更新现有的Python包

hof1towb  于 5个月前  发布在  Python
关注(0)|答案(2)|浏览(72)

我有一个工作的Python包构建为Windows,我想编辑。
我们的开源项目每两周发布一个新版本,我想使用单个Linux服务器自动化这个过程,为Linux、OS X和Windows生成软件包,由于每周对程序的更改都很小,由于Pyrocket不支持交叉编译,我想更新我现有的Pyrocket包中的python文件,而不是运行一个新的构建。the Docs在我看来这应该是可能的,但是我不清楚一旦Pyrocket压缩了我的python文件,我如何才能访问和编辑它们。有人能告诉我正确的方向吗?

pinkon5k

pinkon5k1#

这并不简单,你链接的文档说“Python将编译好的Python代码(.pyc文件)嵌入到可执行文件中”。
这意味着编译过程是这样的:

  1. Python将你的.py文件编译成字节码,并将其保存为.pyc文件。
  2. Python获取所有.pyc文件字节码并将其放入.exe文件中。
    因此,如果你想更新构建而不再次运行Python,你需要替换.exe文件中的字节码,这听起来很复杂,而且容易出错。
    相反,为什么不做一些事情,比如在Linux服务器上的虚拟机中安装Windows,然后在那里运行Python呢?
u7up0aaq

u7up0aaq2#

虽然不完全是OP正在寻找的,但文档中描述的方法在某些情况下可能有用:
单文件夹包的另一个优点是,当你修改代码时,只要它导入 * 完全相同的依赖项集 *,你就可以只发送更新的myscript可执行文件。这通常比整个文件夹小得多。
还请注意,该段的最后一句话与Jack Taylor's answer一致:
...(如果您更改脚本以使其导入更多或不同的依赖项,或者如果依赖项被升级,则必须重新分发整个包。
如果你确实需要为不同的平台自动化构建,像GitHub actions这样的东西可能会很方便。例子可以在这个特性请求中找到:pyinstaller/issues/6296

相关问题