不使用 apt-get 安装 Python Egg 依赖项
我有一个分布在 PyPI 上的 Python 模块,因此可以使用 easy_install
进行安装。它依赖于 lxml,而 lxml 又依赖于 libxslt1-dev。我无法使用 easy_install
安装 libxslt1-dev,因此将其放入 install_requires
中不起作用。有什么方法可以让 setuptools 来安装它而不是求助于 apt-get 吗?
I've got a Python module which is distributed on PyPI, and therefore installable using easy_install
. It depends on lxml, which in turn depends on libxslt1-dev. I'm unable to install libxslt1-dev with easy_install
, so it doesn't work to put it in install_requires
. Is there any way I can get setuptools to install it instead of resorting to apt-get
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
setuptools 只能安装您所在的包索引中的 Python 包使用您通过
easy_install -i http://myindex.site/index
指定的默认索引。任何非 Python 依赖项都必须使用该平台的标准安装包(基于 Debian 的 Linux 发行版上的 apt-get)进行安装。
libxml2
和libxslt
属于此类,因此您应该以标准方式安装它们。setuptools can only install Python packages that in the package index you are using, either the default index of the one you specify with
easy_install -i http://myindex.site/index
.Any non-Python dependencies have to be installed using the standard installation package for the platform (apt-get on Debian based Linux distros).
libxml2
andlibxslt
fall into this category so you should install these in the standard way.最好使用 apt-get 安装 lxml (或具有 c 扩展名的 python 包),然后从 pypi 中提取纯 python 包。另外,我通常会尝试避免使用 easy_install 进行顶级安装,我宁愿使用 virtualenv 创建一个虚拟环境,然后使用 virtualenv 创建的 easy_install 来保持我的设置干净。
这个策略在我的几个生产环境中都成功地发挥了作用。
It's better use apt-get to install lxml (or the python packages that has c extensions) and then pull pure python package from pypi. Also I generally try to avoid using easy_install for top level install, I rather create a virtual env using virtualenv and then use easy_install created by virtualenv to keep my setups clean.
This strategy is working successfully for me for couple of production environments.