Python 使用zc.buildout,如何从网站安装tarball?

Python 使用zc.buildout,如何从网站安装tarball?,python,buildout,recipe,Python,Buildout,Recipe,我正试图让zc.buildout从源代码安装Gunicorn。使用以下配置: [gunicorn] recipe = collective.recipe.distutils url = http://github.com/benoitc/gunicorn/tarball/master 导致以下错误: SystemError: ('Failed', '"/usr/bin/python" setup.py -q install --install- purelib="/mnt/hgfs/Proj

我正试图让zc.buildout从源代码安装Gunicorn。使用以下配置:

[gunicorn]
recipe = collective.recipe.distutils
url = http://github.com/benoitc/gunicorn/tarball/master
导致以下错误:

SystemError: ('Failed', '"/usr/bin/python" setup.py -q install --install-  purelib="/mnt/hgfs/Projects/intranation/parts/site-packages" --install-platlib="/mnt/hgfs/Projects/intranation/parts/site-packages"')
提供
--install dir
--prefix
没有帮助

zc.buildout是否有下载tarball并通过easy_install或类似方式安装的方法?

您可以“直接”安装它。在命令行中,“easy_install”可以正常工作

buildout等效于依赖于“gunicorn”(因此buildout尝试安装它),并告诉buildout您的github链接实际上是gunicorn。您可以使用“查找链接”执行此操作:

[buildout]
  find-links =
      http://github.com/benoitc/gunicorn/tarball/master#egg=gunicorn
  parts = console_scripts


  [console_scripts]
  recipe = zc.recipe.egg
  eggs = gunicorn

这个解决方案的构建部分被当前的setuptools破坏了(我认为>=0.7,用0.9.1和buildout 2.2.0测试)。Setuptools希望#in link后面总是跟一些散列(例如#md5=…)。到目前为止,我还没有找到一个解决方案。哦,你不需要再使用散列了,所以像这样的东西在never-setuptools+buildout-combo:the
../master/gunicorn-1.0.tar.gz
链接的格式可以让setuptools自动识别包名和版本。如果包名/版本与
../gunicorn/tarball/master
中的包名/版本不明显,则需要使用
../egg=…
。那里的版本是什么?包名是什么?Setuptools无法知道。Aggreed。问题是新的setuptools(至少在0.9.1中)不再允许使用
#egg
-部件。当它试图在
#
之后解析校验和时崩溃。幸运的是,github允许在
../tarball/master
之后的任何内容,并且url可以伪造为包含包名和版本。在
#egg=…
中,您还需要指定版本。例如:
bin/easy\u install——查找链接https://www.djangoproject.com/download/1.7c2/tarball/\#egg\=Django-1.7.c2 Django==1.7.c2
。尝试使用setuptools==5.5.1。