使用easy_install和bdist_rpm进行安装可能吗?

我正在build立一个基于RHEL5的新服务器,并希望安装一些不包含它的Python模块。 我已经看到setuptools可以select使用模块构buildRPM包,但不幸的是,这只适用于setup.py ,而不适用于easy_install 。 但是,我想保持依赖解决easy_install以便手动setup.py不是一个选项。

你将如何解决这种情况? 我想避免安装软件包到/usr/local特别是因为RHEL5的股票python默认没有在/usr/local下面定义pythonpath。

如果您可以使用额外的RPM存储库,则可以select一种方法查看您正在查找的Python包是否在EPEL(Extra Packages for Enterprise Linux)存储库中可用。

请参阅http://fedoraproject.org/wiki/EPEL

首先,除非直接从操作系统发行版(Red Hat,Debian等)那里尝试不要安装任何东西 – 作为第一次尝试。 当然,这个问题特别是在Enterprise发行版中,有很多东西是不可用的。

在这种情况下,我再也不会依赖任何产生RPM的东西,只是因为它被封装在RPM中并不意味着它是好的。

我会做什么(以及我所做的:)是编写spec文件来自己为这个Python模块创build一个包。

具体使用安装工具…

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

这样你可以完全控制安装的地方。

简单和python友好的方式来做到这一点是使用virtualenv 。 这只是在运行源代码$ HOME / .pystuff / bin / activate命令之后才能使用,但是可以使整个python包的世界都可用,并且对系统分发的污染极小。

显然,你可以search和build立自己的系统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>