CentOS 6.7,python distutils 和 bloody brp-python-bytecompile
CentOS 6.7, python distutils and bloody brp-python-bytecompile
我正在尝试获取 python distutils 来构建我的 RPM。事实证明这是非常困难的!
在我的 mac 上,一切正常,但在 CentOS 6.7(我的 CI 服务器)上,由于为不同平台构建的 RPM 存在差异,所以没有。
在 CentOS .py
上,文件正在由 rpm/brp-python-bytecompile
预编译。这会创建 .pyc
和 .pyo
文件,这些文件未被 bdist_rpm
列出,因此我得到一个错误!
我找到了 this issue and 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
行是问题所在(考虑到我包含的链接)。有什么办法可以摆脱这个垃圾,因为它似乎会引起周围的问题?
那些错误是老的,但 CentOS6 也是。
Bdist_rpm 非常简单,一旦达到极限,您就进入了死胡同。而且我真的很担心没有人会告诉您如何使用 setup.py 修复它。有关此主题的更多信息,请参阅此处:
http://ziade.org/2011/03/25/bdist_rpm-is-dead-long-life-to-py2rpm/
我真的推荐你使用:
pyp2rpm-https://github.com/fedora-python/pyp2rpm
我正在尝试获取 python distutils 来构建我的 RPM。事实证明这是非常困难的!
在我的 mac 上,一切正常,但在 CentOS 6.7(我的 CI 服务器)上,由于为不同平台构建的 RPM 存在差异,所以没有。
在 CentOS .py
上,文件正在由 rpm/brp-python-bytecompile
预编译。这会创建 .pyc
和 .pyo
文件,这些文件未被 bdist_rpm
列出,因此我得到一个错误!
我找到了 this issue and 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
行是问题所在(考虑到我包含的链接)。有什么办法可以摆脱这个垃圾,因为它似乎会引起周围的问题?
那些错误是老的,但 CentOS6 也是。
Bdist_rpm 非常简单,一旦达到极限,您就进入了死胡同。而且我真的很担心没有人会告诉您如何使用 setup.py 修复它。有关此主题的更多信息,请参阅此处: http://ziade.org/2011/03/25/bdist_rpm-is-dead-long-life-to-py2rpm/
我真的推荐你使用: pyp2rpm-https://github.com/fedora-python/pyp2rpm