[解決済み] Python setuptoolsです。install_requires の下にプライベートリポジトリをリストアップするにはどうしたらいいですか?
質問
私は
setup.py
ファイルを作成しています。これは、GitHub のプライベートリポジトリに依存しているプロジェクトです。 ファイルの関連する部分は次のようになります。
from setuptools import setup
setup(name='my_project',
...,
install_requires=[
'public_package',
'other_public_package',
'private_repo_1',
'private_repo_2',
],
dependency_links=[
'https://github.com/my_account/private_repo_1/master/tarball/',
'https://github.com/my_account/private_repo_2/master/tarball/',
],
...,
)
私は
setuptools
の代わりに
distutils
というのは、後者は
install_requires
と
dependency_links
の引数を
これ
の答えになります。
上記の設定ファイルでは、プライベートリポジトリへのアクセスに404エラーで失敗します。GitHubはプライベートリポジトリに対する不正なリクエストに対して404を返すので、これは予想されることです。 しかし、どのようにすれば
setuptools
を認証させる方法がわかりません。
以下は、私が試したものです。
-
使用方法
git+ssh://
の代わりにhttps://
でdependency_links
でレポをインストールする場合と同じようにpip
. これは setuptools がこのプロトコルを認識しないため ("unknown url type: git+ssh") 失敗します。 ドキュメントを配布する にはそうするべきだと書いてあります。 同上git+https
とgit+http
. -
https://<username>:<password>@github.com/...
- のようにしても、404が表示されます。 (この方法はcurl
またはwget
のいずれかをコマンドラインから実行します。curl -u <username> <repo_url> -O <output_file_name>
は動作します)。 -
setuptools (0.9.7) と virtualenv (1.10) を最新バージョンにアップグレードしました。 また、distributeのインストールも試しましたが この概要 には setuptools にマージされたと書いてあります。 いずれにせよ、ダメでした。
現在、私はちょうど
setup.py
はプライベートリポを別途ダウンロードしなければならないという警告を出力しています。 これは明らかに理想的ではありません。 何か明らかに見逃しているものがあるような気がしますが、それが何なのか思いつきません :)
答えのない重複した質問 ここで .
どのように解決するのですか?
pipでインストールするために、上記を実行させようとしたのですが、うまくいきませんでした。1]からは、理解できたのですが
PEP508
規格を使用すべきであり、[2]からは実際に動作する例を取得しました(少なくとも私の場合)。
注意: これは
pip 20.0.2
で
Python 3.7.4
setup(
name='<package>',
...
install_requires=[
'<normal_dependency>',
# Private repository
'<dependency_name> @ git+ssh://[email protected]/<user>/<repo_name>@<branch>',
# Public repository
'<dependency_name> @ git+https://github.com/<user>/<repo_name>@<branch>',
],
)
このようにパッケージを指定すると、インストールはうまくいきます。
-e
を指定する必要はありません。
--process-dependency-links
).
参考文献 [1] https://github.com/pypa/pip/issues/4187 [2] https://github.com/pypa/pip/issues/5566
関連
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] GitHubでフォークされたリポジトリを更新または同期するにはどうすればよいですか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] distribute, distutils, setuptools, distutils2 の違い?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法