我需要调用 easy_install 作为从一堆服务器安装一些 Python 鸡蛋的函数。确切地说,我安装什么以及从哪里获取它是在运行时确定的:例如,我使用哪些服务器取决于计算机的地理位置。
由于我不能保证任何单个服务器始终可用,因此决定我的脚本需要检查多个服务器。有些地方有禁止的网络过滤,所以我需要检查一个 UNC 路径。其他位置需要我检查混音,如下例所示:
myargs = ['-vv', '-m', '-a', '-f', '//filesrver/eggs http://webserver1/python_eggs http://webserver2/python_eggs, 'myproject==trunk-99']
setuptools.command.easy_install.main( myargs )
当我不提供 find-links 选项 (-f) 时,它似乎工作得很好(在这种情况下,它只是从 distutils.cfg 中获取默认值),当我尝试指定一个额外的 find-links 选项时,我得到的是:
Traceback (most recent call last):
File
"D:\workspace\pythonscripts_trunk\javapy_egg\Scripts\test_javapy.py",
line 20, in ?
result = pyproxy.requireEgg( eggspec , True, hosts )
File
"d:\workspace\pythonscripts_trunk\javapy_egg\src\calyon\javapy\pyproxy.py", line 141, in requireEgg
pkg_resources.require(eggname)
File "d:\python24\lib\site-packages\setuptools-0.6c9-py2.4.egg\pkg_resources.
py", line 626, in require
needed = self.resolve(parse_requirements(requirements))
File "d:\python24\lib\site-packages\setuptools-0.6c9-py2.4.egg\pkg_resources.py", line 524, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: myproject==trunk-99
有人可以确认正确的方法吗?例如,我是在参数中使用 Windows 还是 UNIX 斜杠?必须使用什么字符来分隔多个 URL?
我在 Windows32 上使用 setuptools 0.6c9