簡體   English   中英

當被稱為 function 時,將額外的查找鏈接添加到 easy_install 的正確方法是什么?

[英]What's the correct way to add extra find-links to easy_install when called as a function?

我需要調用 easy_install 作為 function 從一堆服務器安裝一些 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

有人可以確認正確的方法嗎? 例如,我是否在 arguments 中使用 Windows 或 UNIX 斜線? 必須使用什么字符來分隔多個 URL?

我在 Windows32 上使用 setuptools 0.6c9

引用:

myargs = ['-vv', '-m', '-a', '-f', '//filesrver/eggs http://webserver1/python_eggs http://webserver2/python_eggs, 'myproject==trunk-99']

setuptools.command.easy_install.main( myargs )

我看到的第一個問題是您在要查看的服務器列表的末尾缺少一個單引號。

此外,通常最好用雙引號將每個 URL 括起來,以確保它們都被解釋為單個項目。

我不確定你在用這個參數'myproject==trunk-99'做什么,但是你上面寫的方式,easy_install 將它解釋為 package 名稱( 參見文檔)。

您可能想要刪除myproject==因為它只是在尋找項目名稱,而不是 Boolean 或關鍵字參數。

另外,我認為您的意思是使用-v參數而不是不存在的-vv

您使用空格分隔 URL/服務器列表是正確的。 正斜杠適用於 Unix 和 Windows。

像這樣的東西應該適合你:

myargs = ['-v', '-m', '-a', '-f', '"//filesrver/eggs/" "http://webserver1/python_eggs/" "http://webserver2/python_eggs/"', 'trunk-99']
setuptools.command.easy_install.main( myargs )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM