如何发布Python 3无源RPM?

问题描述 投票:1回答:1

[我们有一个以RPM发布的Python 2产品。 RPM仅包含pyo / pyc文件,并且正在运行的脚本引用某些pyo文件来运行产品。我们使用setuptools打包这些RPM:

python setup.py bdist_rpm --release=... --requires=... --bdist-base=...

我们现在将产品移植到Python 3.6,发现pyc文件no longer reside in the same location作为py文件。它们位于py文件文件夹下的__pycache__文件夹中,而且,如果相应的py文件不存在,它们将不起作用。如果pyc文件正在替换py文件,并且不在__pycache__中,则仍旧有行为支持。

[documentation显示python compileall可以接受-b标志:

将字节码文件写入其原有位置和名称,可能会覆盖另一版本的Python创建的字节码文件。默认设置是将文件写入其PEP 3147的位置和名称,允许来自多个版本的Python的字节码文件共存。

但是,由于我们使用setuptools,因此我们不控制编译命令行。

问题:

  1. 是否可以通过-b标志告诉setuptools编译代码并保留pyc文件的旧位置?
  2. Python 3中是否有更好的方法来发布无源RPM,并且仍然能够从脚本中调用pyc文件?
python python-3.x setuptools pyc
1个回答
0
投票

您解决了吗?我有同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.