这与我前一段时间问过的this问题有关。
最终游戏是我希望能够安装我的软件包“identity.model”和所有依赖项。像这样...
$ easy_install -f http://eggs.sadphaeton.com identity.model
Searching for identity.model
Reading http://eggs.sadphaeton.com
Reading http://pypi.python.org/simple/identity.model/
Couldn't find index page for 'identity.model' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading http://pypi.python.org/simple/
No local packages or download links found for identity.model
error: Could not find suitable distribution for Requirement.parse('identity.model')
无论出于什么原因,运行此easy_install都会点击我根据this information
列出的主页我的index.html
<html>
<head>
<title>SadPhaeton Egg Repository</title>
</head>
<body>
<a rel="homepage" href="AlchemyExtra">AlchemyExtra</a>
<a rel="homepage" href="identity.model">identity.model</a>
<a rel="homepage" href="repoze.what.plugins.config">repoze.what.plugins.config</a>
</body>
</html>
如果我跑...
$ easy_install -i http://eggs.sadphaeton.com identity.model
它找到我的包和repoze.what.plugins.config我也放在那里,因为它是一个依赖。然而,当它去获取tw.forms(托管在pypi上的外部依赖)时它以失败结束,因为它只搜索http://eggs.sadphaeton.com
显然我误解了“规范”。任何人都知道诀窍是什么?
答案 0 :(得分:3)
-f将获取您提供的URL,并在那里查找包以及PyPI。这样一个页面的一个例子是http://dist.plone.org/release/3.3.1/如你所见,这是一个分发文件列表。
使用-i定义主索引页面。默认为http://pypi.python.org/simple/如您所见,索引页面是包的索引,而不是分发文件的索引。
因此,在您的情况下,easy_install -i http://eggs.sadphaeton.com identity.model
应该可以下载identity.model。这对我来说,就像在中间两次,但不是第一次,也不是第二次。我不知道你是否正在尝试不同的格式?但无论如何,它会在tw.forms上失败,因为它不在你的索引页面上。
所以解决方案应该是制作一个像http://dist.plone.org/release/3.3.1/这样的页面,上面有你的鸡蛋。我不知道格式有多精确,但我认为它非常灵活。
更新
以下是步骤解决方案的步骤:
python -c "from SimpleHTTPServer import test; test()"
easy_install -f http://localhost:8080/ <modulename>
它将安装模块。
答案 1 :(得分:0)
看起来好像是在root的index.html上有rel =“download”链接。
<html>
<head>
<title>SadPhaeton Egg Repository</title>
</head>
<body>
<a rel="homepage" href="AlchemyExtra">AlchemyExtra</a> <a rel="download" href="AlchemyExtra/AlchemyExtra-0.0dev-py2.6.egg">download</a><br>
<a rel="homepage" href="identity.model">identity.model</a> <a rel="download" href="identity.model/identity.model-0.0dev-py2.6.egg">download</a><br>
<a rel="homepage" href="repoze.what.plugins.config">repoze.what.plugins.config</a> <a rel="download" href="repoze.what.plugins.config/repoze.what.plugins.config-0.0.0-py2.6.egg">download</a><br>
</body>
</html>
解决了我的直接问题,但如果在规范中有更多细节,那就太好了。我期待根据我读到的内容,easy_install会咨询主页以获取下载链接,但它似乎不想为我这样做。
现在以某种方式自动执行此操作,因为手动执行此操作是PITA。
答案 2 :(得分:0)
问题是你正在尝试混合-i和-f模式来制作你的页面;你需要选择其中一个,因为rel=""
个东西只有与-i一起使用。
如果你想使用-f模式,那么你只需要一个带有鸡蛋的webserver目录。如果你想使用-i,那么每个项目必须有一个子目录,其中包含index.html,而那些index.html文件将包含rel="homepage"
个东西。