Pipenv: ナヌザヌがデフォルトのPyPIむンデックスURLをPyPIミラヌURLでオヌバヌラむドできるようにするPipfileを倉曎せずに

䜜成日 2018幎04月27日  Â·  46コメント  Â·  ゜ヌス: pypa/pipenv

皆さんこんにちは、

状況

珟圚、デフォルトのPyPIむンデックスURLをオヌバヌラむドしお、ミラヌを指すURLを䜿甚する簡単な方法はありたせん。 䌁業環境では、開発者にリポゞトリミラヌの䜿甚を芁求するこずは非垞に䞀般的です。

  1. 䌁業のファむアりォヌルは、倖郚の゜フトりェアリポゞトリぞのアクセスを犁止しおいたす。
  2. 内郚リポゞトリミラヌはマルりェアず脆匱性の分析を行いたすが、これはコンプラむアンス芁件になる可胜性がありたす。
  3. 内郚ミラヌは、埌でアップストリヌムで䜿甚できなくなる可胜性のあるモゞュヌルを保持したす停止、削陀などのため。これは、䌚瀟の環境内で䜿甚されるモゞュヌルの可甚性ず監査可胜性を確保するために必芁です。

残念ながら、これはpipenvでは簡単に察応できないようです。 これらのパッケヌゞの゜ヌスずしおミラヌをPipfileに明瀺的に远加するこずもできたすが、これにより移怍性が損なわれたす。

  1. 内郚で初期化されたプロゞェクトには、倖郚で公開された堎合、到達䞍胜なむンデックスが含たれたす。 パブリックバヌゞョンのナヌザヌは、モゞュヌルの䟝存関係をむンストヌルする前にPipfileを倉曎する必芁がありたす。
  2. 倖郚で初期化されたプロゞェクトは、Pipfileを倉曎しないず内郚で機胜したせん。 これらの倉曎はロヌカルで維持する必芁がありただし共有はしない、Pipfileがアップストリヌムで倉曎された堎合は再適甚する必芁がありたす。

真のミラヌを指定するこずにより、PyPIむンデックスの堎所をオヌバヌラむドする方法があるはずです。 これはPyPIにのみ適甚され、他のサヌドパヌティリポゞトリには適甚されたせんこれらは匕き続きPipfileで明瀺的に指定されたす。

䞀般的な提案

Dockerは、ナヌザヌがデヌモンの構成ファむルでレゞストリミラヌを指定できるようにするこずで、この状況に察応したす。 同様に、pipenvナヌザヌが環境倉数、構成ファむル、たたはコマンドラむンパラメヌタヌを介しおPyPIの真のミラヌを指定できれば玠晎らしいず思いたす。 この倀が蚭定されおいる堎合、PyPIぞの接続が利甚可胜であっおも、pipenvはすべおのPyPIパッケヌゞにミラヌを䜿甚する必芁がありたす。 䞀郚の䌁業環境では、PyPIはブロックされないたたですが、ポリシヌでは、䞊蚘の他の理由でミラヌを䜿甚するように指瀺されおいたす。

実装に関する考慮事項

  1. Pipでは、ナヌザヌがpipの構成ファむルを介しおデフォルトのむンデックスURLを䞊曞きするこずをすでに蚱可しおいたす。 これは内郚ミラヌのURLの最も明癜な゜ヌスである可胜性がありたすがそしおこれらのナヌザヌに蚭定される可胜性がありたす、このパラメヌタヌは真のミラヌではないリポゞトリヌに䜿甚できたす。 したがっお、この目的にはおそらく䞍適切です。
  2. 䟝存関係がすべおPyPIで利甚できるモゞュヌルの堎合、明瀺的な゜ヌスをPipfileから削陀でき、pipのデフォルトが䜿甚されるこずを理解しおいたす。 残念ながら、これはPyPI以倖のモゞュヌルを䜿甚するプロゞェクトには適甚されたせん。 さらに、Pipfile生成プロセスはデフォルトで明瀺的であるため、倚くの既存のプロゞェクトでは、デフォルトのむンデックスURLを削陀しお、このパタヌンに察応するように適栌なPipfileを倉曎する必芁がありたす。
  3. 環境倉数がPipfileの゜ヌスずしお蚭定されおいる堎合、ミラヌを提䟛するように倉数をオプションで蚭定できたす。 残念ながら、これには既存のプロゞェクトがこのパタヌンに察応するようにPipfileを倉曎する必芁がありたすが、これは理想的ではありたせん。
  4. 環境倉数、コマンドラむンパラメヌタヌ、たたは構成蚭定を䜿甚しおPyPIむンデックスURLを真のミラヌでオヌバヌラむドする堎合、オヌバヌラむドはどのように機胜したすか ミラヌのむンデックスは、そうでなければPyPIむンデックスを䜿甚するpipぞのすべおの呌び出しで指定する必芁があるず想定したすか 既存のPipfileを倉曎する必芁がありたすか オヌバヌラむド可胜なPyPIのデフォルトを含め、゜ヌスの指定方法を再定矩する必芁がありたすか 他に䜕かありたすか

関連する議論

1451

1783幎

これはFreenodeの#pythonず#pypaで議論されおいたす。 建蚭的なやりずりを行った埌、ここで問題を開いお議論するこずが圹立぀ず刀断されたした。 この問題の解決に向けた皆様のご尜力に感謝いたしたす。

Dependency Resolution Future API Change Behavior Change Discussion

最も参考になるコメント

他のURLではなく、PyPIのみをオヌバヌラむドする必芁がありたす。 おそらく䜿甚されおいるPyPIURLは数皮類しかないので、リストに茉せるこずができたす。1぀を芋逃すず、誰かがバグを報告しお远加され、たもなくすべおのURLが远加されたす。

党おのコメント46件

/ cc @uranusjr @ncoghlan @altendky @njsmith

これは䞀般的に発生するこずであるず私は確信しおいたす䌁業のFW /キャッシングプロキシ-pipfileで芋぀かった堎合、pypiの代わりに䜿甚するミラヌを指定するためのオヌバヌラむド蚭定が必芁だず思いたす- PIPENV_PYPI_MIRRORたたはPIPENV_PYPI_CACHING_PROXYなど、最初に詊す必芁があるこずを指定し、基本的にpypiの前でsourcesにスラむスしたす。

それは目暙を達成しおいるように芋えたすか もしそうなら、実装の魔神にタグを付けお、これが良いか悪いかを教えおください@ncoghlan

泚意点から始めたす。PyPIがPEP458に類䌌したパッケヌゞ眲名メカニズムを実装しおpipにTLSに䟝存しない方法を提䟛し、名目䞊PyPIから発信されたパッケヌゞが実際にPyPIが公開したものず䞀臎するようにするたで、次に、トラフィックを別のサヌバヌに透過的にリダむレクトする機胜を提䟛するこずは、セキュリティの芳点から真に懞念されたす。

残念ながら、その特定の攻撃ベクトルはすでにpip.confを介しお開かれおいるため、 pipenvレベルで同等のものを提䟛しおも、これたで以䞊に悪化するこずはありたせん。

それを超えお、汎甚リポゞトリのURL曞き換えメカニズムは、少なくずも基本機胜局では、PyPI固有のものよりも実際に文曞化しお説明する方が簡単だず思いたす。 䜕かのようなもの

pipenv --override-source-url 'default=https://pypi-proxy.example.com/api' --override-source-url 'https://pypi.python.org/simple=https://pypi-proxy.example.com/api'  --override-source-url 'https://pypi.org/simple=https://pypi-proxy.example.com/api' install

PyPI固有のビットは、 pip.confで指定されおいるように、「default」を䜿甚しおpipのデフォルトのダりンロヌド゜ヌスを参照するこずだけです。

ただし、゜ヌスURLオヌバヌラむドマップ党䜓を毎回スペルアりトするず、実際に䜿甚するのは扱いにくいため、CLIシュガヌのいく぀かのオプションは次のようになりたす。

pipenv --override-source-urls <config file> install

pipenv --pypi-mirror https://pypi-proxy.example.com/api install

--override-source-urlレむダヌをすぐに公開するかどうかは別の質問です。最初に、より単玔な--pypi-mirrorオプションを実装し、単に--override-source-urlの可胜性を維持する方が理にかなっおいるかもしれたせん。そうしおいる間、可胜な限り将来のオプションを念頭に眮いお--override-source-urls 。

䞀般的な{given URL: override URL}マッピングも私の最初の考えでしたが、さらに怜蚎するず、特殊なケヌシングのPyPIにはいく぀かの議論がありたす。

  • PyPIは、よく知られおいるパブリックURLず倚数のミラヌを備えおいるずいう点で非垞にナニヌクです。

  • PyPIには実際には耇数のURLがありたすたずえば、 https://pypi.python.org/simpleずhttps://pypi.org/simpleの䞡方、さらにはhttps://pypi.python.org/simple/ずhttps://pypi.org/simple/のPipfileがしばらくの間浮かんでいる可胜性がありたす

@njsmith私の投皿の最埌の郚分にある--pypi-mirror <URL>の砂糖の提案を参照しおください-最初の実装がそれだけに焊点を圓おおいる堎合、䞀般的なURL曞き換え機胜は、内郚実装の詳现ずしお開始できたす「 PyPI "には耇数のURLがあり、それらはすべお最終的に同じ堎所に解決されたす、その埌すぐに䞻芁な--pypi-mirrorの䜿甚で垌望どおりに機胜しおいるこずが確認された埌、それ自䜓が機胜ずしお公開されるず芋なされたす堎合。

ああ、そうだ、私はそれを逃した:-)

コマンドラむン匕数をある皮のより氞続的な構成にマッピングする䞀般的なルヌルはありたすか これのほずんどのナヌザヌは、䞀床蚭定しおから忘れたいず思うでしょう。

@ncoghlanは曞いた

泚意点から始めたしょうPyPIがPEP 458に䌌たパッケヌゞ眲名メカニズムを実装しお、名目䞊PyPIから発信されたパッケヌゞが実際にPyPIが公開したものず䞀臎するこずを保蚌するために、TLSに䟝存しない方法をpipに提䟛するたで、トラフィックを別のサヌバヌに透過的にリダむレクトするこずは、セキュリティの芳点から真に懞念されおいたす。

Pipfile.lockを正しく読んでいる堎合、パッケヌゞずそれがむンストヌルされた゜ヌスずの間に保存された関係はありたせん。 既存の機胜セットで耇数の゜ヌスを指定できるずするず、同様の問題が発生したせんか syncは、ロックファむルの䜜成時に䜿甚されたものずは異なる゜ヌスからパッケヌゞを取埗するこずになる可胜性がありたす。

Pipfile.lockは、固定された䟝存関係ごずに受け入れ可胜なアヌティファクトハッシュのリストを栌玍するため、ロックを実行するず、パッケヌゞを密かに眮き換えるこずは困難です。 ロックの生成時に、 Pipfileの゜ヌスに明瀺的にオプトむンするず、「この゜ヌスが混乱しないように信頌し、TLSを䜿甚しお実際にこの起点ず話しおいるこずを確認したす」ず蚀っおいたす。 ここではなく、 pipたたは他のPyPAリポゞトリのいずれかにある可胜性がありたすが、特定のパッケヌゞを特定の゜ヌスリポゞトリにバむンドする可胜性に぀いお議論しおいる問題があるず思いたす

pip.confでデフォルトのむンデックスURLを倉曎するたたは远加のむンデックスURLを远加するか、構成ファむルたたはシェルプロファむルベヌスのメカニズムを介しおここで提案されおいるオヌバヌラむド機胜を䜿甚するこずは異なりたす。ある時点で、ホヌムディレクトリsdistのsetup.pyファむルなどぞの曞き蟌みアクセス暩を䜿甚しお実行され、このパッケヌゞの゜ヌスを信頌するように蚭定を構成するこずにしたした。 たた、PEP 458のような眲名スキヌムでさえ、怜蚌に䜿甚される公開鍵自䜓が、倉曎するために昇栌された特暩を必芁ずするディレクトリではなく、ホヌムディレクトリ内のどこかに栌玍されおいる堎合、これらの皮類のシェナニガンに察する完党な防埡にはなりたせん。

厳栌なセキュリティ芁件を持぀組織が、むンタヌネットぞのアクセスが制限されたロックダりンされたサヌバヌでビルドを実行する、たたはネットワヌクレベルでこの皮の問題を監芖するのには十分な理由がありたす:)

耇数のむンデックスを䜿甚しおいお、パッケヌゞが非プラむマリむンデックスからのものである堎合も、ロックファむルに瀺されるこずに泚意しおください。

pep 458の懞念は、基本的に私が念頭に眮いおいたものでした。URLは異なりたすが、実際にはpypiのポむントは、ロヌカルでpypiをコピヌしお同じであるず䞻匵した堎合ずは異なりたす。

私、たたはホヌムディレクトリぞの曞き蟌みアクセス暩を䜿甚しおある時点で実行した任意のプロセスsdistのsetup.pyファむルなどは、このパッケヌゞの゜ヌスを信頌するように蚭定を構成するこずにしたした。

これがあなたの脅嚁モデルである堎合、pipenvがどのようにそれを実行できるかはわかりたせん。 ホヌムディレクトリの蚭定を倉曎できる人は、 $PATHに新しいディレクトリを挿入し、そこに停のpipenvを挿入しお、奜きなこずを実行するこずもできたす。

@njsmithこれはpipの脅嚁モデルでもありたす。これは、パッケヌゞのむンストヌルにはsdist setup.pyファむルからの任意のコヌドの実行が蚱可されおいるためです。 そのコヌドは確かに、蚭定などのホヌムディレクトリ内のものを䞊曞きしたり、パスに䜕かを远加したりする可胜性がありたす。 そのため、明瀺的にpypi既知の信頌できるむンデックスを特暩化し、ハッシュチェックを芁求するこずは、セキュリティに向けた良いステップです。 これにより、既知のセキュリティ脅嚁を集䞭管理および排陀し、ダりンロヌドしおいるパッケヌゞの怜蚌を分散しお識別できたす。 ダりンロヌドしたロックファむルは、取埗する必芁のあるハッシュに぀いお䜕ず蚀っおいたすか むンデックスから取埗しおいるものず䞀臎したせんか この動䜜モヌドが倱敗するためには、耇数のロヌカルマシン、むンデックス、およびネットワヌク局で障害が発生する必芁がありたす。これは、アプリケヌションスタック内の耇数の砎損したパッケヌゞが連携しお動䜜し、信頌できるむンデックスに察しおハッシュを怜蚌するこずに぀いお話しおいるためです。 、そしお倚くの堎合、ハッシュ自䜓はさらに別の関䞎しおいない゜ヌスから来たした。 だから今、あなたは少なくずも、pipずpipenvの䞡方のハッシュチェックのすべおが、あなたが望んでいるものず同じハッシュを生成するように䜕らかの圢で改ざんされおいる必芁がありたすが、さらに他の悪意のあるものをむンストヌルしたすか

私が蚀っおいるのは、ロヌカルマシンが危険にさらされた堎合、pipやpipenvがあなたを救うために䜕もするこずはないずいうこずだず思いたす。 ただし、ダりンロヌドするパッケヌゞが、怜玢するはずの堎所から探しおいるものであるこずを確認できたす。これにより、セキュリティチェヌンの1぀の芁玠を提䟛できたす。

@ncoghlan @njsmithこれは、 sudo pip install...に反察する動きず、䞀般的な意味でどのように考慮されたすか。pipを䜿甚する堎合は、おそらく倧たかに蚀えば、Pythonのものをむンストヌルするシステムパッケヌゞマネヌゞャヌ。 これは実際にはpipenvの質問ではないかもしれたせんが、それは珟圚議論が行われおいる堎所であり、これが次のステップを導くかもしれたせん...

@techalchemyこのトピックずの関連性はたったくわかりたせんか 䞊蚘のすべおの結論は、ナヌザヌがPyPIに䜿甚するミラヌpipenvをオヌバヌラむドできるようにしおも、远加の脅嚁は発生しないず思いたす。たた、 sudo pipenvを実行しおも、そもそも意味がありたせん。

@njsmithいいえ私は誰もsudo pipenvを䜿うべきではないず思いたす。私が蚀ったように、それは実際には話題ではありたせんが、脅嚁モデルの道を少し進んだので、調査する䟡倀があるず思いたした。 具䜓的には

たた、PEP 458のような眲名スキヌムでさえ、怜蚌に䜿甚される公開鍵自䜓が、倉曎するために昇栌された特暩を必芁ずするディレクトリではなく、ホヌムディレクトリ内のどこかに栌玍されおいる堎合、これらの皮類のシェナニガンに察する完党な防埡にはなりたせん。
厳栌なセキュリティ芁件を持぀組織が、むンタヌネットぞのアクセスが制限されたロックダりンされたサヌバヌでビルドを実行する、たたはネットワヌクレベルでこの皮の問題を監芖するのには十分な理由がありたす:)

少なくずもある皋床の防埡が特暩のある堎所に保存されおいるキヌに䟝存しおいるが、特暩のあるpythonむンストヌルを䜿甚しないようにアドバむスしおいる堎合は、議論する䟡倀があるず思いたす。 たぶん私は間違っおいたす。 しかし、それは間違いなく@ncoghlanのコメントに関連しおいるようですただし、 sudo pipenvではなく、決しお問題になるこずはありたせん

ええ、それはおそらくどこからずもなく出おきたように芋えたした、ただランダムな考えです。 うたくいけば、远加のコンテキストがそれをいく぀かクリアしたす

私は、TUFをどのように実装するかに぀いおの投機的な議論に入るのではなく、PyPIミラヌを䜿甚する必芁がある人々を支揎するずいうトピックでこの問題を維持するこずに投祚したす。 ずにかく、ナヌザヌのホヌムディレクトリぞの任意の曞き蟌みアクセス暩を持぀攻撃者から防埡するためにできるこずやすべきこずはあたりないず思いたす。

さお、それでは、私たちが期埅たたは奜む動䜜を定矩したしょう。 私の珟圚の実甚的な理解は次のずおりです。

  • --pypi-mirrorが枡された堎合、たたはPIPENV_PYPI_MIRRORが蚭定されおいる堎合は、
  • PyPIのみよりも優先する必芁がありたすか 特定のむンデックスURLが「PyPI」であるかどうかをどのように評䟡しおいたすかク゚リを実行できないため、リストを維持する必芁がありたす
  • リストにすべおの可胜な順列を含める必芁がありたすか、それずも、提䟛されたミラヌを最初に詊す必芁があるものずしおPipfileを生成するために過去に䜿甚した2぀のURLを䜿甚するこずに満足する必芁がありたすか

他のURLではなく、PyPIのみをオヌバヌラむドする必芁がありたす。 おそらく䜿甚されおいるPyPIURLは数皮類しかないので、リストに茉せるこずができたす。1぀を芋逃すず、誰かがバグを報告しお远加され、たもなくすべおのURLが远加されたす。

私にずっお正しいアプロヌチのようです。

@njsmithが蚀ったこずは、私の芋方にも䞀臎したす。 最初のPRで眮き換えるこずをお勧めする3぀のリポゞトリURLは次のずおりです。

末尟のスラッシュかどうかは、URLを個別にリストするよりも、URL正芏化ステップずしお凊理する方が適切な堎合がありたす。

リク゚ストのPipfileには執筆時点で末尟にスラッシュがあるこずに泚意しおください。したがっお、おそらくこれを䜕らかの方法で凊理する必芁がありたす。

そうです、私の考えは次のずおりです。

  • 末尟にスラッシュを付けずにURLのリストを維持する
  • 受信URLで末尟のスラッシュを確認し、芋぀かった堎合は削陀したす str.rstripは、任意の数の末尟のスラッシュを削陀する堎合でも、タスクには十分である可胜性がありたす。そうでない堎合は、より厳密にするこずができたす。末尟のスラッシュを最倧1぀削陀したす

玠晎らしい。 これで十分に機胜し、シンプルに構築できるず思いたす。 皆さんありがずう

ミラヌ機胜がすぐに远加されるこずを願っおいたす〜

私もこの問題に盎面しおいたす。 状況は次のずおりです。

  • いく぀かのプラむベヌトパッケヌゞを備えた内郚PyPIサヌバヌがありたす。
  • Pipenvを䜿甚しお䟝存関係を管理する耇数のPythonアプリケヌションがありたす。
  • 䞀郚の䟝存関係は内郚PyPIサヌバヌに存圚し、その他の䟝存関係はコミュニティPyPIに存圚したす。 内郚のものは、パッケヌゞが芋぀からない堎合はコミュニティPyPIにリダむレクトしたす。

私のデプロむメント戊略では、内郚PyPIサヌバヌを参照するシステム党䜓のpip.confがすでに蚭定されおいたす。 驚いたこずに、この構成はPipenvによっお無芖されおいるこずがわかりたした。

内郚PyPIを移動/名前倉曎する堎合、Pipfilesを䜿甚するいく぀かのアプリケヌションを曎新し、それらのPipfile.lockファむルを再生成する必芁があるこずに気づきたした。 ミラヌオプションは、必芁な機胜を提䟛したす。 PipenvがPipのシステム構成を読み取るこずができれば、それも機胜し、冗長性が少なくなりたす。

PRはこれを歓迎したす

こんにちは。 同じニヌズがありたすが、このオヌバヌラむド機胜を別のチケットに分割したす。

これが私の予想される行動の提案です

  • Pipfileの[[source]]セクションで定矩されたすべおの倀を蚭定するように構成ファむルを定矩できたす。
  • Pipfileの[[source]]セクションのみを含むtomlファむルである可胜性がありたす
  • このファむルの堎所は、pip.conf甚に定矩されたルヌル䟋/etc/pipenrc.toml、~/.pipenvrc.tomlに倧きく圱響されおいたす。
  • environ倉数を定矩しお、これらの倀をオヌバヌラむドするこずもできたす泚意[[source]]のすべおの倀が必芁です。 定矩したす
  • pipenvの珟圚の動䜜は次のずおりです。

    • Pipfileを䜜成するずき、構成ファむル/環境倉数から倀を取埗したす

    • 構成ファむルたたは環境倉数が定矩されおいない堎合、pipenvの珟圚の動䜜が適甚されたす

    • pipenvは、Pipfileの[[source]]セクションを垞に生成し続けたす

    • Pipfileの[[source]]セクションが存圚する堎合、pipenvは構成ファむルの倀で䜕もオヌバヌラむドしようずしたせん。

たた、2番目のチケットでは、オヌバヌラむドオプションを実装できたす。 たずえば、CIなどの内郚で意味がありたす。

補足珟圚、本番環境ではpipenvを倚甚しおいたすが、Arrifactory Pypiリポゞトリにアクセスするために新しいプロゞェクトを開始するずきにPipfileを手動で倉曎する必芁があるこずを、頻繁に思い出させる必芁がありたす詳现に぀いおは、NexusはPypiも実行したす無料でキャッシュし、tはうたく機胜したす。 ファむアりォヌルは非垞に制限されおおり、䌁業内では倖郚の䟝存関係をキャッシュするこずをお勧めしたす。これにより、たずえば、バックアップしお脆匱性をチェックできたす。
䞀般構成ファむルたたはナヌザヌ構成ファむルに䌌た単玔な機胜すでにpipたたはnpmに察しお行っおいるようなで、開発者がミスを少なくするようにすべおのワヌクステヌションにデプロむする堎合、それは私にずっお完璧です

䜕かを逃したかもしれたせんが、これは退行のようです。 私たちはしばらくの間11.6.0を䜿甚しおおり、pipenvは内郚のpypiミラヌを指すpip.confの蚭定に喜んで委任したした。

これが壊れたずきのアむデアはありたすか これにより、pipenvは私たちのコンテキストでは完党に䜿甚できなくなりたす。 どうやら長い間正垞に機胜しおいたのに、これを「欠萜しおいる機胜」ず芋なすのに苊劎しおいたす。

明確にするために2018.05.18にアップグレヌドした埌、Pipfile [.lock]で指定されたミラヌを䜿甚しおも、pipenvはpypi.orgから新しいパッケヌゞをむンストヌルしようずしたす。

倚分私が芋おいるのはこれずは別の問題です...

@brettdhあなたの環境を芋ずに芋分けるのは難しいですが、同じ問題ではないず思いたす。 リリヌス間で二等分しお、これがどこで倉曎されたかを正確に確認し、新しい問題を開くこずをお勧めしたす。

私はこのためのPRに取り組んでいたす。

私はこれがデフォルト蚭定に察しお埌退したず思いたす。 ただリリヌスされおいないpip10のアップデヌトの波に巻き蟌たれた可胜性がありたすが、 @ JacobHennerがただ远加しおいない堎合は、それほど問題なくこれを取埗できるず思いたす。

公匏のPyPiのキャッシングプロキシずしおdevpiを䜿甚するこずに぀いお話しおいるず思いたす。 pip自䜓の堎合、すべおのリク゚ストにロヌカルdevpiサヌバヌを䜿甚するには、pipの/etc/pip.confず/usr/lib64/python3.6/disutils/distutils.cfgを倉曎する必芁がありたす。

ただし、pipenvはこれらのシステム党䜓の蚭定を無芖しおいるように芋えるため、devpiサヌバヌを参照するようにPipfileの[[source]]構成蚭定を倉曎する必芁がありたす。 ただし、Pipfileを倖郚に公開する堎合、倖郚の貢献者は、実際に独自の環境を構築するために、 [[source]]の蚭定を削陀する必芁がありたす。

pipenvは/etc/pip.confず/usr/lib.../distutils.cfgのグロヌバル蚭定を尊重する必芁があるず思いたす

@ polski-g

公匏のPyPiのキャッシングプロキシずしおdevpiを䜿甚するこずに぀いお話しおいるず思いたす

Nexusリポゞトリですが、ええ、同じ考えです。

ただし、pipenvはこれらのシステム党䜓の蚭定を無芖しおいるようです

@techalchemyが述べたように、pipenv11.6.0はpip.conf homedirもを尊重しおいたず思いたすが、最新バヌゞョンはそうではありたせん-具䜓的には、どこかにハヌドコヌドされたpypi.org URLがありたす䟝存関係解決、IIRCオヌバヌラむドするこずはできたせん。

pipenvは、/ etc /pip.confおよび/usr/lib.../distutils.cfgのグロヌバル蚭定を尊重する必芁があるず思いたす。

同意したした-個人的には、ナヌスケヌスでdistutils.cfgを倉曎する必芁はありたせんでした。

IIRCには、pip.confを尊重しないずいう解決策がありたしたが、それを芋぀けるには、課題远跡システムを深く掘り䞋げる必芁がありたす。 いずれにせよ、船は出航しおおり、PyPIミラヌリングがほが完了しおいるため、近い将来、これが倉曎される可胜性はほずんどありたせん。

この機胜は次のリリヌスで出荷されるず確信しおいたす運が良ければ翌日か2日で出荷されたす

たた、これに぀いおはよくわかりたせんが、ここで構成パヌサヌを䜜成しお構成のデフォルトを取埗した埌、 .load()を呌び出す必芁がある可胜性がありたす

https://github.com/pypa/pipenv/blob/master/pipenv/project.py#L573-L577

@uranusjrは、ミラヌリング構成が機胜する限り぀たり、前述のハヌドコヌドされたpypi.org URLを䜿甚しない限り、pipenvが独自の構成を持ち、pipを無芖しおも問題はありたせん。

@brettdh私のブランチをチェックアりトしお、それがあなたのブランチに適合しおいるこずを確認できたすか
ご䜿甚の環境でのナヌスケヌス

>>

@JacobHennerうん、ありがずう。 --pypi-mirrorオプション pipenv install 、 pipenv lock を䜿甚した最初のテストは、正垞に機胜しおいるように芋えたす。 私はPRに小さな提案を残したした。

ただし、pypi.orgぞのハヌドコヌドされたURLがただpipenv゜ヌス党䜓に散圚しおいるように芋えるのではないかず少し心配しおいたす。 [[source]]゚ントリからどれが正しくオヌバヌラむドされおいるかわかりたせん。たた、䞊蚘の問題の原因ずなったワヌクフロヌを正確に思い出せたせん。 したがっお、修正されおいるかどうかを刀断するのは困難です。 😬

ええ、このリリヌスに続いお、私は䞻芁なコヌドのクリヌンアップを蚈画しおいたす。 CLIは、CLIに移動し、そこで䟋倖をバブリングし、そこですべおの出口を凊理し、重耇したコヌドを重耇排陀するなど、倚くの䜜業が必芁になりたす。ボランティアをしたい堎合は、助けおいただければ幞いです。

最近のバヌゞョンをプルしただけで、゜ヌスにpypi.orgがハヌドコヌディングされおいたす。 環境倉数たたはpypi-mirrorを取埗し、それを[[source]]のデフォルトずしお蚭定するこずが目暙ですか

線集

コヌドを掘り䞋げただけです。

if PIPENV_TEST_INDEX:
    DEFAULT_SOURCE = {
        u"url": PIPENV_TEST_INDEX,
        u"verify_ssl": True,
        u"name": u"custom",
    }
else:
    DEFAULT_SOURCE = {
        u"url": u"https://pypi.org/simple",
        u"verify_ssl": True,
        u"name": u"pypi",
    }

PIPENV_TEST_INDEXを環境倉数PIPENV_PYPI_MIRRORに倉曎した堎合は、良いスタヌトになるず思いたす。

ここで説明する゜リュヌションは、長い間実装されおきたした。 匕甚したスニペットはデフォルトです。぀たり、Pipfileの䜜成時に゜ヌスを指定しない堎合に䜿甚されたす。

いいえ、Pipfileで゜ヌスを倉曎しないでください。 この倉曎の目暙
ナヌザヌがミラヌを䜿甚しおPyPIURLをオヌバヌラむドできるようにするこずでした。
Pipfile。

@JacobHennerミラヌ凊理コヌドは、゜ヌスリストを埌凊理し、 pypi.org URLを指定されたミラヌぞの参照に眮き換えたす。

これにより、 Pipfileに明瀺的なpypi.org゚ントリがある堎合でも、ミラヌオヌバヌラむドが機胜したす。 pipenvは、同じロゞックに䟝存しお、独自のデフォルト゜ヌスもオヌバヌラむドしたす。

珟圚、その埌凊理が正しく適甚されおいない堎合は、機胜芁求ではなく、すでに実装されおいる機胜に察する新しいバグレポヌトです。

最埌のコメントは@kylecribbsを察象ずしたものだず思いたすか

@JacobHennerああ、ごめんなさい-私はあなたのコメントを、その結果が実際に䜕であるかを明らかにするこずを目的ずしたカむルぞの応答ずしおではなく、この倉曎が圓初の目暙を達成しなかったず蚀ったず誀解したした。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡