3

这里有一个奇怪的问题。

我在一个使用经过身份验证的代理连接到外部世界的网络中。我不控制这个代理服务器。

这个事实在过去曾让我对 wget、curl 等的使用感到困惑(这是在 Mac OSX 10.8 上)。所以,我设置了环境变量:

HTTP_PROXY=proxyserveraddress:3128
FTP_PROXY=proxyserveraddress:3128
RSYNC_PROXY=proxyserveraddress:3128

这当添加到 bash rc(它是配置文件吗?)文件时,使网络连接对 shell 透明。还有一个指向相同方式的系统代理设置。

现在,我安装了 Plone 并想将 plone.app.ldap egg 安装到安装中。

我在更新 buildout.cfg (包括这个鸡蛋)后运行了 bin/buildout,我得到:


Installing instance.
Download error on http://pypi.python.org/simple/plone.app.ldap/: [Errno 61] Connection     refused -- Some packages may not be found!
Download error on http://pypi.python.org/simple/plone.app.ldap/: [Errno 61] Connection refused -- Some packages may not be found!
Couldn't find index page for 'plone.app.ldap' (maybe misspelled?)
Download error on http://pypi.python.org/simple/: [Errno 61] Connection refused -- Some  packages may not be found!
Getting distribution for 'plone.app.ldap'.
While:
  Installing instance.
  Getting distribution for 'plone.app.ldap'.
Error: Couldn't find a distribution for 'plone.app.ldap'.
*************** PICKED VERSIONS ****************
[versions]

*************** /PICKED VERSIONS ***************

接下来,我编辑了 bin/buildout 并添加了以下几行:

import os

print os.environ["HTTP_PROXY"]

我再次运行 bin/buildout。

果然吐出来了

proxyserveraddress:3128

这意味着 python 正在读取环境变量。

我更进一步(这很有趣)并取消了代理设置(只是看看它是否重要):

MacBook-Pro:zinstance macpro$export HTTP_PROXY=
MacBook-Pro:zinstance macpro$ bin/buildout 

Installing instance.
Download error on http://dist.plone.org: [Errno 61] Connection refused -- Some packages may not be found!
Download error on http://download.zope.org/ppix/: [Errno 61] Connection refused -- Some packages may not be found!
Download error on http://download.zope.org/distribution/: [Errno 61] Connection refused -- Some packages may not be found!
Download error on http://effbot.org/downloads: [Errno 61] Connection refused -- Some packages may not be found!
Download error on http://dist.plone.org/release/4.3.2: [Errno 61] Connection refused -- Some packages may not be found!
Download error on http://pypi.python.org/simple/plone.app.ldap/: [Errno 61] Connection refused -- Some packages may not be found!
Download error on http://pypi.python.org/simple/plone.app.ldap/: [Errno 61] Connection refused -- Some packages may not be found!
Couldn't find index page for 'plone.app.ldap' (maybe misspelled?)
Download error on http://pypi.python.org/simple/: [Errno 61] Connection refused -- Some packages may not be found!
Getting distribution for 'plone.app.ldap'.
While:
  Installing instance.
  Getting distribution for 'plone.app.ldap'.
Error: Couldn't find a distribution for 'plone.app.ldap'.
*************** PICKED VERSIONS ****************
[versions]

*************** /PICKED VERSIONS ***************

因此,您取消设置代理和其他服务器(plone、zope、effbot)开始抱怨。这意味着我的代理设置对于这些下载工作正常,但以某种上帝希望知道为什么的方式,它们对于 pypi.python.org 来说还不够好。

pypi.python.org 有什么特别之处?它是否使用某些特殊端口进行连接(与构建连接的其他服务器不同)可能被网络代理服务器关闭?在有人问之前,是的,我可以使用 Chrome 浏览器浏览到 pypi.python.org URL。

我已经确定我有一个合理的代理设置。它的 pypi 搞砸了扩建。

4

1 回答 1

7

pypi 使用的安全套接字身份验证可能会导致您的问题,因为它可能使用您未包含在代理转发列表中的不同端口。您可能能够以与其他 poxy 设置相同的方式解决此问题。

另一种方法是在运行构建之前从 pypi 手动下载并安装所需的包 - 如果依赖项已经满足,则不会使用访问权限。

您还可以考虑运行本地 pypi 服务器并将其定向到该服务器 - 您仍然需要将软件包下载到该服务器,但如果您正在进行多次安装,那将是值得的。

于 2013-10-21T07:45:43.310 回答