我有一个Python应用程序,它可以在Python> = 2.6上运行,而且它的架构是独立的。
我需要在Fedora 14(python 2.7)和Centos 6.2(python 2.6)上安装此应用程序的rpm包。
我目前使用mock为每个“风味”build立一个rpm包,它运作良好。 我显然无法在Fedora上安装Centos编译的rpm。
它给了我这个错误消息:
error: Failed dependencies: python(abi) = 2.6 is needed by myapp-0.9.el6.noarch
这里是我的.spec文件的相关部分:
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} Name: myapp Version: #VERSION# Release: #RELEASE#%{dist} Summary: myapp Group: Development/Languages License: Apache v2 Source0: %{name}-%{version}-#RELEASE#.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch BuildRequires: python-devel BuildRequires: python-setuptools %description myapp %prep %setup -c %build %{__python} setup.py build %install %{__rm} -rf %{buildroot} %{__python} setup.py install -O1 --skip-build --root %{buildroot}
我真的必须使用mock和build立2 RPM或有另一种方法来创build一个通用的2.x rpm包吗?
Python文件在构build时得到字节编译,这就是为什么它们需要特定的Python版本才能运行。 正确的方法是分开安装软件包,但应该可以编写只安装.py源文件的spec文件,因此不需要特定的Python版本。 您可能必须处理将文件放在您关心的所有/usr/lib/python2.X/site-packages目录中。