【问题标题】:cmake: brp-python-bytecompile and python3cmake: brp-python-bytecompile 和 python3
【发布时间】:2021-12-27 11:14:42
【问题描述】:

我正在尝试使用cpack (cmake) 创建一个python3 包。由于某种原因,它失败并显示一条神秘的消息:

+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
error: Bad exit status from /var/tmp/rpm-tmp.rt2mTp (%install)
    Bad exit status from /var/tmp/rpm-tmp.rt2mTp (%install)
 ***
CPackRPM:Debug:    - /mnt/source/bin2/_CPack_Packages/Linux/RPM/rpmbuildsource-python.out
CPackRPM:Debug: *** Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.mxEjdh
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.rt2mTp
Compiling /mnt/source/bin/_CPack_Packages/Linux/RPM/project-0.0.8-Linux/python/usr/lib/python3/dist-packages/project/__init__.py ...
  File "/usr/lib/python3/dist-packages/project/__init__.py", line 27
    raise ValueError(f"Not a {obj.__class__.__name__} reference")
                                       ^
SyntaxError: invalid syntax

有没有办法跳过brp-python-bytecompile 步骤,或者有没有办法指示cpack python 包只针对python3

供参考:

# head -1 source/python/__init__.py
#!/usr/bin/env python3

【问题讨论】:

    标签: python-3.x rpm cpack


    【解决方案1】:

    有两种解决方案:

    1. 依靠/bin hack
    2. 更改__python 的默认值

    对于解决方案 #1,您只需使用 bin 子文件夹。在/bin 的子目录中发生的任何python 字节编译都不会完成:

    对于解决方案 #2,您只需遵循:

    对于 cmake,语法是:

    set(CPACK_RPM_SPEC_MORE_DEFINE "%define __python python3")
    

    另请参阅替代解决方案:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-10
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      • 2013-07-15
      • 2017-03-29
      • 1970-01-01
      • 2019-12-01
      相关资源
      最近更新 更多