関数として呼び出されたときに、easy_installに追加の検索リンクを追加する正しい方法は何ですか?
-
20-08-2019 - |
質問
一連のサーバーからPython eggをインストールするための関数としてeasy_installを呼び出す必要があります。正確にインストールするものと取得元は実行時に決定されます。たとえば、使用するサーバーはコンピューターの地理的な場所によって異なります。
単一のサーバーが常に使用可能であることを保証できないため、スクリプトで複数のサーバーをチェックする必要があると判断されました。いくつかの場所ではWebフィルタリングが禁止されているため、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を使用しています
解決
引用:
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はパッケージ名(ドキュメントを参照)。
おそらくブール値やキーワード引数ではなく、プロジェクト名のみを検索しているため、myproject==
を削除する必要があります。
また、存在しない-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 )