可以使用 easy_install 和 bdist_rpm 安装吗?

可以使用 easy_install 和 bdist_rpm 安装吗?

我正在基于 RHEL5 设置新服务器,并想安装一些未随附的 Python 模块。我看到 setuptools 有一个选项,可以从模块中构建 RPM 包,但不幸的是,这只适用于setup.py,不适用于easy_install。但是,我想保留 的依赖项解析,easy_install这样手动setup.py就不是一种选择。

您将如何解决这种情况?我想避免安装软件包,特别是因为 RHEL5 中的普通 Python默认/usr/local没有定义下面的 Python 路径。/usr/local

答案1

如果您可以使用其他 RPM 存储库,那么一个选项是查看您所需的 Python 包是否在 EPEL(企业 Linux 的额外包)存储库中可用。

http://fedoraproject.org/wiki/EPEL

答案2

首先,作为第一次尝试,我尽量不安装任何东西,除非直接从操作系统发行版(Red Hat、Debian 等)安装。当然,问题在于,特别是企业发行版,很多东西都不可用。

在这种情况下,我再次不会依赖任何为我生成 RPM 的东西,仅仅因为它被打包在 RPM 中并不意味着它是好的。

我要做的(好吧,我确实做了:)是自己编写 spec 文件来为这个 Python 模块创建一个包。

具体来说是使用安装工具...

  pythonX.Y setup.py build
  pythonX.Y setup.py install --root=<my-build-area> --<other-options>

这样,您就可以完全控制物品的安装位置。

答案3

简单且对 Python 友好的方法是使用虚拟环境。这个命令的缺点是只有在运行 source $HOME/.pystuff/bin/activate 命令后才可用,但它的好处是,你可以使用整个 Python 包,而对系统分布的污染却很小。

显然,您可以搜索并构建自己的系统 Python 包,但老实说,对于大多数用途来说,这样做麻烦多于其价值。如果您要这样做,显然可以从 seutptools 和 virtualenv 开始 =p

wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
easy_install virtualenv
virtualenv $HOME/.pystuff
source $HOME/.pystuff/bin/activate
easy_install pip
easy_install <random_pypy_stuff>
easy_install <random .egg file>
easy_install <random .tar.gz file>
pip install <other random stuff that won't install with easy_install>

相关内容