[解決済み] pipでgitのサブディレクトリからインストールするにはどうしたらいいですか?
質問
私は多くのフォルダを持つgitリポジトリを持っています。そのうちの1つは、次のようにpipでインストール可能なpythonモジュールです。
repo.git/
repo.git/folder1/
repo.git/folder2/
repo.git/mymodule/
repo.git/mymodule/__init__.py
repo.git/mymodule/setup.py
repo.git/mymodule/...
今現在、インストールするために以下のことをしなければなりません。
git clone http://server/repo.git
cd repo
pip install mymodule
cd ..
rm -rf repo
明示的にクローンすることなく、pipで直接モジュールをインストールすることは可能でしょうか?
試してみました。
pip install git+https://server/repo.git/mymodule/
pip install git+https://server/repo.git:mymodule/
しかし、私は得る。
IOError: [Errno 2] No such file or directory: '/tmp/pip-88tlLm-build/setup.py'
どのように解決するのですか?
このページには プルリクエスト があり、一ヶ月前に develop ブランチにマージされたようです。構文としては に続く :
pip install -e git+https://git.repo/some_repo.git#egg=version_subpkg&subdirectory=repo # install a python package from a repo subdirectory
おそらく、masterにマージされて配布されるまで、しばらく待たなければならないでしょう。
UPDATE : これは現在、以下のサイトで公開されており、文書化されています。 https://pip.pypa.io/en/stable/cli/pip_install/#vcs-support を以下のように変更しました。
setup.pyがプロジェクトのルートにない場合。 subdirectory"コンポーネントが使用されます。subdirectory"コンポーネントの値は、プロジェクトのルートから始まるパスである必要があります。 の値は、プロジェクトのルートから setup.py がある場所へのパスである必要があります。 が配置されている場所への、プロジェクトのルートから始まるパスでなければなりません。
ですから、もしあなたのリポジトリのレイアウトが
- pkg_dir/ - setup.py # setup.py for package ``pkg`` - some_module.py - other_dir/ - some_file - some_other_file
を使用する必要があります。
pip install -e vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir
注意: Windows では、URLを二重引用符で囲む必要があります。そうしないと、エラー "'subdirectory' is not recognized as an internal or external command" が表示されます。例:使用する。
pip install -e "vcs+protocol://repo_url#egg=pkg&subdirectory=pkg_dir"
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] githubのソースを直接requirements.txtに記載する方法
-
[解決済み] Conda: githubから直接インストール/アップグレードする。
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
-
[解決済み] ファブリックタスクにパラメータを渡す
-
[解決済み] Python regex find all overlapping matches?