【发布时间】:2015-12-01 03:49:53
【问题描述】:
我正在尝试让 python distutils 为我构建一个 RPM。事实证明这非常困难!
在我的 Mac 上一切正常,但在 CentOS 6.7(我的 CI 服务器)上,由于 RPM 是为不同平台构建的差异,这不是问题。
在 CentOS 上,.py 文件正在由rpm/brp-python-bytecompile 预编译。这会创建 .pyc 和 .pyo 文件,这些文件未由 bdist_rpm 列出,因此我收到错误消息!
我找到了this issue 和this issue,但它们是很久很久以前的!所以我很惊讶我仍然看到这种情况发生!有什么解决方法吗?我不想创建规范文件,我使用 bdist_rpm 来避免它......谢谢。
这是我要打包的东西的示例结构:
<root>/
setup.py
my-awesome-app.py
help-scripts/
extract-config.py
这是我的 setup.py:
from distutils.core import setup
setup(name='my-awesome-app',
version='1.0',
author='Daniel Gruszczyk',
scripts=['my-awesome-app.py'],
data_files=[('/etc/bake',['help-scripts/extract-config.py'])],
)
这是运行 python setup.py bdist_rpm 的示例输出(只是导致错误的行):
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id /var/lib/jenkins/workspace/my-awesome-app/build/bdist.linux-x86_64/rpm/BUILD/my-awesome-app-1.0
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-python-bytecompile
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: my-awesome-app-1.0-1.noarch
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: /var/lib/jenkins/.pyenv/versions/2.7.5/bin/python
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/lib/jenkins/workspace/my-awesome-app/build/bdist.linux-x86_64/rpm/BUILDROOT/my-awesome-app-1.0-1.x86_64
error: Installed (but unpackaged) file(s) found:
/etc/help-scripts/extract-config.pyc
/etc/help-scripts/extract-config.pyo
我认为+ /usr/lib/rpm/brp-python-bytecompile 行是问题所在(鉴于我包含的链接)。有什么办法可以摆脱这种废话,因为它似乎会引起周围的问题?
【问题讨论】:
-
我有类似的问题。你在上面看到的命令来自
rpmbuildrc,但我不知道如何覆盖这些。
标签: python-2.7 centos rpm