0

distutils( )を使用して、(ローカルリポジトリから)Pythonパッケージをインストールできるようにしたいと思いsetup.pyます。これには、別のローカルリポジトリからの別のパッケージが必要です。setupコマンド の適切なドキュメントが不足しているため(ここここsetupでいくつかの例を見つけただけで、 -terms extras_requireと混同され、ここここinstall_requiredependency_links見つかりました)、これを処理する方法、つまりインストールを処理する方法を示す完全なファイルを持っている人はいますか?いくつかのSVNリポジトリで見つかったパッケージの場合、現在インストールしているメインパッケージでそれが必要な場合はどうでしょうか。setup.pydistutils

より詳細な説明:2つのローカルsvn(またはgit)リポジトリbasicmoduleextendedmodule。今、私はチェックアウトextendedmoduleして実行しますpython setup.py install。このsetup.pyファイルは、がextendedmodule必要basicmoduleであることを認識しており、リポジトリから自動的にダウンロードしてインストールします(まだインストールされていない場合)。どうすればこれを解決できsetup.pyますか?それとも、これを行うための別のより良い方法がありますか?


編集:フォローアップの質問

トムの回答に基づいて、私はsetup.py次のように使用しようとしました。

from setuptools import setup
setup(
    name = "extralibs",
    version = "0.0.2",
    description = ("Some extra libs."),
    packages=['extralib'],
    install_requires = "basiclib==1.9dev-r1234",
    dependency_links = ["https://source.company.xy/svn/MainDir/SVNDir/basiclib/trunk@20479#egg=basiclib-1.9dev-r1234"]

)。

これを通常のユーザーとしてインストールしようとすると、次のエラーが発生します。

error: Can't download https://source.company.xy/svn/MainDir/SVNDir/basiclib/trunk@20479: 401 Authorization Required

しかしsvn、まったく同じリンクで通常のチェックアウトを行うと、次のように機能します。

svn co https://source.company.xy/svn/MainDir/SVNDir/basiclib/trunk@20479

svnリポジトリの設定を変更せずにこれを解決する方法について何か提案はありますか?

4

2 に答える 2

0

これらの2つの質問に対する答えを確認してください。それらは両方とも、あなたが望むものを達成するためにどのようにそして一緒に働くかについての特定の例を与えinstall_requiresますdependency_links

于 2013-03-12T18:22:24.953 に答える
0

問題は、svnクライアントが認証されていること(〜/ .subversionディレクトリのどこかにレルムをキャッシュしていること)であり、distutilshttpクライアントがその方法を知らないことだと思います。

Distutilsは、依存関係リンクでsvn+httpリンクタイプをサポートしています。したがって、ユーザー名とパスワードを提供する依存関係リンクの前に「svn+」を追加してみてください。

依存関係=["svn+ https:// user:password@source.company.xy/svn/MainDir/SVNDir/basiclib/trunk@20479#egg=basiclib-1.9dev-r1234 "]

セキュリティ上の理由から、ユーザー名とパスワードをsetup.pyファイルに入れないでください。環境変数またはイベントから認証情報をフェッチする1つの方法は、subversion構成ディレクトリ(〜/ .subversion)から認証情報をフェッチしようとします。

お役に立てば幸いです

于 2013-03-13T08:04:32.297 に答える