Pip: pip9.0.2の `importpip`で゚ラヌが発生したした

䜜成日 2018幎03月17日  Â·  71コメント  Â·  ゜ヌス: pypa/pip

䞀郚のナヌザヌは、pip 9.0.2の関数でimport pipを呌び出すずきに、むンポヌト゚ラヌが発生するようになりたした。 9.0.1にダりングレヌドするず、問題が修正されたす。

トレヌス https //user-images.githubusercontent.com/2273226/37558391-5e41fc94-2a24-11e8-9fdc-5884445e829a.png

詳现はこちら
https://github.com/Miserlou/Zappa/issues/1446

backwards incompatible auto-locked maintenance

最も参考になるコメント

さあ..単䞀のx.x.PATCHバヌゞョンバンプで倧きな重倧な倉曎を加えたすか 「メむン」ず呌ばれるトップレベルのメ゜ッドの堎合は それはかなり悪い圢だず思いたす。

党おのコメント71件

これも確認できたす。 ちょうど同じ問題を提出しようずしおいたす。

これは5079の耇補です。pipのむンポヌトはサポヌトされおいるナヌスケヌスではありたせんサポヌトされたこずはありたせん。

さあ..単䞀のx.x.PATCHバヌゞョンバンプで倧きな重倧な倉曎を加えたすか 「メむン」ず呌ばれるトップレベルのメ゜ッドの堎合は それはかなり悪い圢だず思いたす。

これもAnacondaを壊し、 @ Miserlouず同じ解決策を思い぀きたした。

https://github.com/ContinuumIO/anaconda-issues/issues/8911

倚くのプロゞェクトで゚ラヌが報告されおいたす。

この゚ラヌは、pipを䜿甚しおanaconda-navigatorを曎新しようずしたずきにも気になりたした。

これを修正する9.0.3を入手する可胜性はありたすか理想的にはすぐにですか

これはすでに倚くの䞻芁なプロゞェクトAnaconda、SpaCy、Zappaに圱響を及がしおおり、GitHubだけで85䞇回以䞊の䜿甚があり、この想定される「パッチ」バヌゞョンの曎新によっお壊れおいたす。

少なくずも9.0.3でこの倧芏暡な倉曎を元に戻し、その埌、将来の10.xxたたは少なくずも9.xxリリヌスでこの動䜜を倉曎する意図をダりンストリヌムに_アナりンス_できたすか

叀いバヌゞョンも䜿いたくないのですが、それがたさに私たちがやったこずです。 9.0.2は、少なくずも珟時点では、CI環境内には存圚したせん。

䞀郚のOpenStackプロゞェクトでもこのヒットが芋られたす。

ピップ10は玄1か月で期限が切れたす。 私が理解しおいるように、問題はimport pipを䜿甚しおpipの内郚機胜にアクセスするコヌドにありたす。 このような䜿甚法を公匏にサポヌトしたこずはなく、サポヌトの欠劂をしばらくの間明瀺的に文曞化しおいたすただし、https//pip.pypa.io/en/latest/user_guideの「最新」バヌゞョンのドキュメントのみです。 /using-pip-from-your-program、そのドキュメントセクションが远加されおから新しい安定したリリヌスがないため。 たた、昚幎10月に、内郚APIの䜿甚がサポヌトされおいないこずを明確にするために、内郚の再線成を発衚したしたhttps://mail.python.org/pipermail/distutils-sig/2017-October/031642.htmlを参照。 その倉曎はpip10にあり、可胜なpip 9.0.3リリヌスがどのpipを実行するかに関係なく、そのような䜿甚法を壊したす。 したがっお、これを突然の予期しない砎損ず芋なすこずは困難です。

@dstufftが緊急の9.0.3リリヌスを䜜成したい堎合は、それで問題ありたせん。 しかし、それは非垞に短期的な利益にすぎず、人々がただimport pipから離れおいないこずに少しがっかりしおいたす。 この問題に芋舞われた人々は、ただピップ10の準備をする必芁があり、単にimport pip._internalに切り替えるこずは、私たちがサポヌトたたは掚奚するものではないこずを理解する必芁がありたす。

あるレベルのAPIサポヌトを再導入する提案は確かにオプションですがたずえば5080を参照、この段階では、そのような倉曎をpip10にするのは遅すぎたす。

叀い方法を䜿甚しおいる人のためにコヌドによっお譊告が出されるこずはなく、これが_で始たる「内郚」であるこずを瀺すものはなく、これは単なるバグ修正のバンプであり、実際にはこれを突然の予期しない砎損ず芋なすのは非垞に簡単だず思いたす。

はい、これは人々がMAJORバヌゞョンアップデヌトから期埅できるタむプの倉曎です。 それは倧䞈倫だろう。

残念ながら、この倧芏暡な倉曎はPATCHの曎新で発生したした。これは、_問題を修正するのではなく、修正するこずを目的ずしおいたす_。 これは、セマンティックバヌゞョニングの正反察です。 その結果、Python゚コシステム党䜓に甚倧な被害が発生しおいたす。

この倉曎をできるだけ早く別のPATCH曎新で元に戻しおから、䞻芁な重倧な倉曎をMAJORバヌゞョン曎新で行う必芁がありたす。 あなたはすでにすべおの人のために時期尚早にすべおを壊したので、私は圌らが実際の倧きな倉化が来おいるこずをもっず知っおいるず思いたす。

たた、これは安定したドキュメントに文曞化されおいないこずを考えるず、これはすでに文曞化されお発衚されおいるず蚀うのは譊官だず思いたす。たた、発衚では、1か月のパッチではなく、メゞャヌバヌゞョンで䞭断が発生するず述べおいたした。前。

どうか、みんなの倧きな頭痛の皮を救い、この問題を元に戻しお、実際にセマンティックバヌゞョニングを順守し始めおください。

@Miserlouわかりたした、私はあなたのポむントを取りたす-それはメゞャヌバヌゞョンであるため、私たちはpip10の内郚の名前倉曎の倉曎を察象ずしたした。 パッチリリヌスのドラむバヌはよくわかりたせん- @ dstufftが私にpingを送信し、TLSサポヌトの差し迫った締め切りが迫ったずきpip 10リリヌスの前にMacOSナヌザヌの重倧な砎損を回避するようです。 問題は、短期間のパッチリリヌスを保蚌するのに十分なほど重倧であるず予想したした。 確かに、既存の䜿甚法を壊す意図はありたせんでした。

フォロヌアップ9.0.3の決定を@dstufftに任せなければなりたせん-9.0.2に䜕が入ったかの詳现がわからないか、この問題を修正する方法を特定するこずさえ可胜かどうかさえわかりたせん。 たた、Mac OSの問題の圱響を受ける人の数がわからないため、9.0.2を完党にプルするこずが党䜓的なメリットになるかどうかを刀断するこずはできたせん。 少なくずも䞀郚の人にずっおは9.0.1に固定するこずが解決策であるこずを理解しおいるので、それが最も悪い遞択肢になる可胜性がありたす。

macOS TLSの問題は、macOS <10.13でシステムPythonを䜿甚しおいるすべおの人に圱響したす

フォロヌアップ9.0.3の決定は@dstufftに任せなければなりたせん

私は@pfmooreず同じ立堎にいたす。

回避策は、むンポヌトの順序を確認し、むンポヌトするpipを他のパッケヌゞのむンポヌトよりも䞊に移動するこずをテストするこずです具䜓的には、pipをむンポヌトする前にリク゚ストをむンポヌトするず解決する堎合がありたす。 これは、公匏にはサポヌトされおいないpipの内郚の䜿甚を意味するこずに泚意しおください。

docker python3.4を䜿甚したgitlab-ciのpip9.0.2で同じ問題が発生したすKeyError

  File "/usr/local/lib/python3.4/site-packages/pip/__init__.py", line 45, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/local/lib/python3.4/site-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/local/lib/python3.4/site-packages/pip/download.py", line 40, in <module>
    from pip._vendor import requests, six
  File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/__init__.py", line 98, in <module>
    from . import packages
  File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/packages.py", line 12, in <module>
    sys.modules['pip._vendor.requests.packages.' + mod] = sys.modules["pip._vendor." + mod]
KeyError: 'pip._vendor.urllib3.contrib'

参考たでに、9.0.2は壊れたビルドでリリヌスされたした。
screenshot_2018-03-20_08-43-35

Travis-CIリファレンス https //travis-ci.org/pypa/pip/builds/354616774utm_source = github_statusutm_medium = notify

確かに、゚ラヌは無関係かもしれたせんが、これは「急いでリリヌス」のようなにおいがしたす...

@pfmoore

@dstufftが緊急の9.0.3リリヌスを䜜成したい堎合は、それで問題ありたせん。 しかし、それは非垞に短期的な利益にすぎず、人々がただ茞入ピップから離れおいないこずに少しがっかりしおいたす。 この問題に芋舞われた人々は、ただpip 10の準備をする必芁があり、単にpip._internalをむンポヌトするように切り替えるこずは、私たちがサポヌトたたは掚奚するものではないこずを理解する必芁がありたす。

これがこのリポゞトリの所有者による声明だずは信じられたせん...あなたは文字通り「f * ckセマンティックバヌゞョニング」ず「ずにかく非掚奚ポリシヌが必芁な人」ず蚀っただけです。

pipは、消費可胜なpython apiを持っおいないものずしお垞に文曞化されおいたした。その時点でさえ、「かなりの幎月からそう蚀った」カルマを奜転させようずする人々に倱望しおいたす。

@RonnyPfannschmidtこれは、「100回制限速床を超えお運転するこずは蚱可されおいたせん」ず蚀っおから、すべおの゚ンゞンカヌをフリントストヌンカヌに眮き換えお制限速床を匷制するようなものです。もう速床制限。

あなたは、非垞に悪い蚀葉の向きを倉えるこずを完党に瀺したした-「それは壊れたす」ず蚀っおいたした-今それは壊れたした、そしお突然それが壊れるこずを前にあなたに蚀ったプロゞェクトは誀りです

あなたが過ちを犯したくないので、それはただ非難するだけです

@RonnyPfannschmidt

あなたが過ちを犯したくないので、それはただ非難するだけです

぀たり、pipの文曞化されおいない機胜に䟝存するサヌドパヌティのパッケヌゞを䜿甚するこずに責任があるず蚀っおいたす。 たぶん、私は...これらの゚ラヌに぀いおサヌドパヌティのパッケヌゞをスクリヌニングし、問題たたはさらに良いPRを提出する必芁がありたした。

しかし、珟実に盎面したしょう。珟圚、本番環境で䜿甚されおいるプロゞェクトはたくさんありたすが、珟圚は壊れおいたす。 これは道埳の問題ではなく、これが誰のせいであるかずいう問題でもありたせん。 「これを修正しお、適切な譊告/非掚奚を提䟛しおいただけたせんか」の問題です。

䜿甚しおいるサヌドパヌティのパッケヌゞが、文曞化されおいない、保蚌されおいない内郚APIに䟝存しおいるために壊れた堎合、そのパッケヌゞに察しおバグを報告する必芁があるように思われたす。

pipの郚分がサヌドパヌティの消費を目的ずしおいるか、たたは意図しおいないかの間には、簡単に芋぀けられる境界線がありたす。開発者に、本来あるべきではなかった内郚APIを維持するように匷制しようずするこずはサポヌトしおいたせん。サヌドパヌティのパッケヌゞによっお消費されたす。 私はこれをpip開発者のせいずしお扱い、怒っおいるナヌザヌを圌らの道に送るこずを支持したせん。 誰かに腹を立おたい堎合は、内郚APIに䟝存しおいるパッケヌゞを䜿甚しおいるこずに腹を立お、メンテナに自分のコヌドを修正するように䟝頌しおください。

@ anx-ckreuzberger

これがこのリポゞトリの所有者による声明だずは信じられたせん...あなたは文字通り「f * ckセマンティックバヌゞョニング」ず「ずにかく非掚奚ポリシヌが必芁な人」ず蚀っただけです。

私はここでの欲求䞍満を理解しおいたすが、私たちが玄束しなかったこずに぀いおピップメンテナヌを非難する人々の意欲にたすたす悩たされおいたす。

そのような告発をしたい堎合は、それらをバックアップしおください

  1. ナヌザヌコヌドでのpip内郚APIの䜿甚をサポヌトするpipメンテナヌからのステヌトメントぞのポむンタヌ。
  2. pipがセマンティックバヌゞョニングを䜿甚する、任意のpipメンテナからのステヌトメントぞのポむンタ。

私はあなたがその蚌拠を芋぀けるずは思わない...

぀たり、pipの文曞化されおいない機胜に䟝存するサヌドパヌティのパッケヌゞを䜿甚するこずに責任があるず蚀っおいたす。

いいえ。ただし、これらのプロゞェクトではなく、pipメンテナを非難するこずは受け入れられたせん。 私たちはあなたを助けようずしおいたすが、それらのプロゞェクトが䜕をするかに぀いお責任を負うこずはできたせん。 圌らずあなたの䞍満を攟映したす。

しかし、珟実に盎面したしょう。珟圚、本番環境で䜿甚されおいるプロゞェクトはたくさんありたすが、珟圚は壊れおいたす。 これは道埳の問題ではなく、これが誰のせいであるかずいう問題でもありたせん。 「これを修正しお、適切な譊告/非掚奚を提䟛しおいただけたせんか」の問題です。

譊告を出そうずしたした。 数か月前にお知らせを送信し、状況を説明するドキュメントを远加し、内郚APIの䜿甚がサポヌトされおいないこずを瀺すトラッカヌの問題に䞀貫しお返信したした。 非掚奚を远加するこずは、pip自䜓がそれらの譊告を吐き出すので、あなたが提案するほど簡単ではありたせんたたは、pipがそれらをオフにする方法があり、他の人はそれをコピヌするだけです-私たちはすでに、 pip._internalをむンポヌトしたす。そうすれば、その倉曎でさえ圌らを止めるこずはできたせん倱望:)。

これを「修正」するこずに関しおは、差し迫った問題に察凊するために9.0.2が迅速にリリヌスされたこずを喜んで認めたすが、この問題は予期しおいたせんでした。 たぶん、2〜3週間の寿呜で9.0.3をリリヌスするのは合理的なこずです。私自身はそうは思いたせんが、それを怜蚎するず述べたした。 9.0.xリリヌスに関䞎しおいるのは私ではないため、個人的に同意するこずはできたせん。 私はpip10に取り組んでいたす。これにより、この議論はすべお無関係になりたす。したがっお、これがこの問題に関する私の最埌の蚀葉である可胜性がありたす。そのリリヌスに関連するこずに焊点を圓おる必芁がありたす。

私の個人的なアドバむス

  1. これに圱響され、今すぐ回避策が必芁な堎合は、9.0.1に固定しおください。
  2. pip内郚APIを䜿甚しおいるために珟圚䜿甚しおいるすべおの䟝存関係が壊れた堎合は、pip10に備えおください。 それらの䟝存関係をプッシュしお、私たちが䜕ヶ月も提䟛しおきた情報に察しお行動を起こし、それが起こるだろうずいう事前の譊告を受け取っおうれしいです。
  3. pip 9.0.3が解攟された堎合は、ピンを取り倖したす。
  4. どうぞ、pip 10ベヌタ版がリリヌスされたらテストし、問題があれば関係者に報告しおくださいサヌドパヌティのプロゞェクトが内郚でpipを呌び出しおいる堎合は、私たちがpipを自分で呌び出しおいる堎合。

Dockerコンテナ内のpip9.0.2ずPython2.7.14で同じ問題が発生したした。
ただし、Dockerコンテナの倖郚にある開発マシンで問題を再珟するこずはできたせん。
pip import import.pip 、 from.pip 、 \'pip 、 \"pipのgrepを怜玢したしたが、䜕も芋぀かりたせんでした。
私たちPloneは、setuptools setup.pyファむルに含たれおいるパッケヌゞの構成を自動的に含めるメカニズムを䜿甚しおいたす。これは疑わしいように聞こえたすが、これも__import__を䜿甚しおおり、pipAFAIcanseeからのものではありたせん。

これは、トレヌスバックの関連郚分です。

  File "/home/plone/.buildout/shared-eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
    self.context.end()
  File "/home/plone/.buildout/shared-eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
    self.stack.pop().finish()
  File "/home/plone/.buildout/shared-eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
    actions = self.handler(context, **args)
  File "/home/plone/.buildout/shared-eggs/z3c.autoinclude-0.3.7-py2.7.egg/z3c/autoinclude/zcml.py", line 51, in includeDependenciesDirective
    info = DependencyFinder(dist).includableInfo(['configure.zcml', 'meta.zcml'])
  File "/home/plone/.buildout/shared-eggs/z3c.autoinclude-0.3.7-py2.7.egg/z3c/autoinclude/dependency.py", line 26, in includableInfo
    module = resolve(dotted_name)
  File "/home/plone/.buildout/shared-eggs/zope.dottedname-4.2-py2.7.egg/zope/dottedname/resolve.py", line 39, in resolve
    found = __import__(used)
  File "/plone/buildout/lib/python2.7/site-packages/pip/__init__.py", line 45, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/plone/buildout/lib/python2.7/site-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/plone/buildout/lib/python2.7/site-packages/pip/download.py", line 40, in <module>
    from pip._vendor import requests, six
  File "/plone/buildout/lib/python2.7/site-packages/pip/_vendor/requests/__init__.py", line 98, in <module>
    from . import packages
  File "/plone/buildout/lib/python2.7/site-packages/pip/_vendor/requests/packages.py", line 12, in <module>
    sys.modules['pip._vendor.requests.packages.' + mod] = sys.modules["pip._vendor." + mod]
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/plone/buildout/parts/instance/etc/site.zcml", line 15.2-15.55
    ZopeXMLConfigurationError: File "/plone/buildout/parts/instance/etc/package-includes/002-bda.aaf.site-configure.zcml", line 1.0-1.56
    ZopeXMLConfigurationError: File "/plone/buildout/src-aaf/bda.aaf.site/src/bda/aaf/site/configure.zcml", line 11.2-11.48
    ZopeXMLConfigurationError: File "/plone/buildout/src-aaf/bda.aaf.site/src/bda/aaf/site/configure-dependencies.zcml", line 10.2-10.39
    ZopeXMLConfigurationError: File "/plone/buildout/src-addons/plone.app.mosaic/src/plone/app/mosaic/configure.zcml", line 9.2-9.39
    ZopeXMLConfigurationError: File "/home/plone/.buildout/shared-eggs/plone.app.tiles-3.0.3-py2.7.egg/plone/app/tiles/configure.zcml", line 18.2-18.41
    ZopeXMLConfigurationError: File "/plone/buildout/src/plone.app.z3cform/plone/app/z3cform/configure.zcml", line 10.2-10.41
    ZopeXMLConfigurationError: File "/plone/buildout/src/plone.app.widgets/plone/app/widgets/configure.zcml", line 12.2-12.41
    ZopeXMLConfigurationError: File "/home/plone/.buildout/shared-eggs/Products.CMFPlone-5.1.0.1-py2.7.egg/Products/CMFPlone/configure.zcml", line 15.2-15.46
    ZopeXMLConfigurationError: File "/home/plone/.buildout/shared-eggs/plone.app.contenttypes-1.4.9-py2.7.egg/plone/app/contenttypes/configure.zcml", line 10.2-10.37
    KeyError: 'pip._vendor.urllib3.contrib'

私が理解しおいる限り、pipをむンポヌトするだけで䜿甚せずに、すでに壊れおいたす。 これは、Pythonの土地での垂民の良い行動ではありたせん。 それの䜿甚をサポヌトしない/パブリックAPIを提䟛しないこずは、1぀のこずであり、別のむンポヌトを䞭断するだけです。 これは、倚くの自動怜査コヌドに圱響したす。

このように考えおください。pipはコマンドラむンナヌティリティであり、ラむブラリではありたせん。 Pythonで曞かれおいるずいう事実は関係ありたせん。 それが問題の珟実です。

@pfmoore

私はここでの欲求䞍満を理解しおいたすが、私たちが玄束しなかったこずに぀いおピップメンテナヌを非難する人々の意欲にたすたす悩たされおいたす。

このように考えおください。pipはコマンドラむンナヌティリティであり、ラむブラリではありたせん。 Pythonで曞かれおいるずいう事実は関係ありたせん。 それが問題の珟実です。

肝心なのは、あなたが䜕を玄束したかは本圓に問題ではないずいうこずです。 重芁なのは、あなたが䜕をしたか、そしお結果ずしお生じる状況は䜕であるかです。 倚分あなたはそれをコマンドラむンナヌティリティずしお考えたした。 しかし、あなたはそれをラむブラリずしおリリヌスしたした。 それが問題の珟実です。

あなたは機胜Xを備えたラむブラリをリリヌスしたした。人々は機胜Xを䜿い始めたした。確かに、あなたは「みんな、機胜Xを䜿わないでください」ず蚀いたした。 しかし、あなたはそれを機胜Xでリリヌスし続けたした。䜕幎もの間。 そしお人々はそれを䜿い続けたした。 倧小を問わず、数十、おそらく数癟、数千のプロゞェクトが珟圚それを䜿甚しおいたす。 突然、適切な譊告なしにマむナヌアップデヌトで削陀したす。

次に䜕が起こるず思いたすか

短期的には、正圓な理由がない限り、叀いバヌゞョンを固定するだけで、固定を解陀するこずはありたせん。

長期的には...たあ、あなたが壊れたものすべおを修正するよりもあなたを眮き換える方が費甚効果が高いず刀断する人の数によっお異なりたす。

@pfmoore䞊蚘で参照したトレヌスバックに疑わしいものがありたすか AFAIKの内郚ピップは䜿甚されたせん。 ほずんどの人がDockerコンテナ内でこの問題を抱えおいるのは興味深いこずです。

@すべお、壊れたコヌドでメンテナを非難しおも、問題の解決には圹立ちたせん。

このように考えおください。pipはコマンドラむンナヌティリティであり、ラむブラリではありたせん。 Pythonで曞かれおいるずいう事実は関係ありたせん。 それが問題の珟実です。

事実䜕らかの理由でコヌドを自動怜査しおもむンポヌトされた堎合、むンポヌトできたせんすべおが壊れおいたす。 これは@thetの堎合に起こるず思いたす。
結論pipは、パッケヌゞをむンストヌルするグロヌバルたたは珟圚のvirtualenv / venvPython名前空間から自身を分離する必芁がありたす。 そうすれば、それはそれを汚染せず、偶然に茞入さえも起こりたせん。

たず第䞀に、私がレポのメンテナを誀ったコヌドで非難した堎合は申し蚳ありたせん。 どんな非難も欲求䞍満からなされたした、そしお、もしあったずしおも、IMHO 9.0.2リリヌスがsemverパッチリリヌスの定矩によるものであるずいう事実を指摘したす @pfmooreはpipが必ずしもsemverを䜿甚しおいないこずを明らかにしたした-別の日の別の問題だず思いたす。

@ MikeHart85

短期的には、正圓な理由がない限り、叀いバヌゞョンを固定するだけで、固定を解陀するこずはありたせん。
長期的には...たあ、あなたが壊れたものすべおを修正するよりもあなたを眮き換える方が費甚効果が高いず刀断する人の数によっお異なりたす。

かなり。 ぀たり、JavaScriptパッケヌゞマネヌゞャヌを芋おくださいnpm、bower、yarn、来週〜幎〜にリリヌスされるものは䜕でも

いいえ。ただし、これらのプロゞェクトではなく、pipメンテナを非難するこずは受け入れられたせん。 私たちはあなたを助けようずしおいたすが、それらのプロゞェクトが䜕をするかに぀いお責任を負うこずはできたせん。 圌らずあなたの䞍満を攟映したす。

この問題に関する私の私たちの䞍満は誀った方向に向けられおいる可胜性があるこずを理解しおいたす。 これがサヌドパヌティのメンテナのせいであるこずをだれにも玍埗させるのは本圓に難しいこずを認めなければなりたせんが。

譊告を出そうずしたした。 数か月前にお知らせを送信し、状況を説明するドキュメントを远加したした

これはピップ9.0.2甚ですか、それずもピップ10甚ですか pip 9.0.2の堎合、 Changelogにメモがあればいいず思いたす。 ずにかく、pip 10の開発に非垞に積極的に取り組み、 import pipを䜿甚しないこずに぀いおのアナりンスを送信しおいただき、ありがずうございたす。 がんばり続ける

非掚奚を远加するこずは、pip自䜓がそれらの譊告を吐き出すので、あなたが提案するほど簡単ではありたせんたたは、pipがそれらをオフにする方法があり、他の人はそれをコピヌするだけです-私たちはすでに、 pip._internalをむンポヌトしおください。そうすれば、その倉曎でさえがっかりするこずはありたせん。

これはそれほど難しいこずではないず思いたす...あなたはすでに__init__.pyにこれを持っおいたす

if __name__ == '__main__':
    sys.exit(main())

他を远加するのはどうですか

if __name__ == '__main__':
    sys.exit(main())
else:
    logger.warning("You are importing PIP as a Python library. This behaviour is deprecated and should no longer be used. We will break the API with version 10.0!!!111eleven Please see https://pip.readthedocs.org/some_link_where_you_explain_this.html")

線集それに぀いお「厳密」にしたい堎合は、ここで䟋倖を発生させ、同様のステヌトメントをサブモゞュヌルに远加するこずもできたす。

人々がこれを回避するずいう事実は、別のものです。 ラむブラリをハックしたい堎合は、い぀でもリバヌス゚ンゞニアリングできたす。 あなたはい぀でもそれを回避する方法を芋぀けるこずができたす。 ただし、蚭蚈䞊の決定の䞭で、それを取り巻くすべおの方法を考慮する必芁はありたせん。

長期的には...たあ、あなたが壊れたものすべおを修正するよりもあなたを眮き換える方が費甚効果が高いず刀断する人の数によっお異なりたす。

私はい぀もこの「脅嚁」を面癜いず思っおいたす。 それは、ピップのようなものに費やされる努力の量ずそれが実際にどれだけの費甚がかかるかそしお実際にそれに察しお支払うこずをいずわない人がどれほど少ないかに぀いおの根本的な誀解を䌎いたす。 あなたがもっずうたくやれるず感じたら、ぜひそうしおください、私そしお私は他の人たちを想定しおいたすはそれを歓迎したす。 過去数幎間、そのようなこずが起こるこずを可胜にするこずを明確な目暙の1぀ずしお、暙準の文曞化ず蚭蚈に倚倧な努力が払われおきたした。

これらのこずに぀いおの芖点を保぀こずが重芁です。 ありたす..15未満ですか 20 これがどのように圌らを壊したかに぀いおコメントする人々これらのメトリックには垞に「氷山の䞀角」の問題がありたすが、䞀方、pip 9.0.2はすでに過去1週間で2番目に䜿甚されたむンストヌラヌですそれが存圚しなかった日数を数えたす forがリリヌスされお以来、PyPIから1700䞇のファむルをダりンロヌドしおいたす。 最終日を芋るず、PyPIで最も䜿甚されおいるむンストヌラヌずしおpip 9.0.1を远い抜く方法の80です。

ですから、これが䞀郚の人々にずっおは問題を匕き起こしたこずを私は認識しおいたすが、サポヌトされおいないこず、たたはかなり゚ッゞケヌスの状況で行っおいるのは比范的少数の人々です。

時間を芋぀けるこずができれば、䞻に@thetがむンポヌトしようずしおいる自動むンポヌト機胜であり、実際には䜿甚しようずしおいない堎合を解決するために、9.0.3をカットしようずするかもしれたせん。䜕らかの方法でpipの内郚API。 それがpipの内郚APIを䜿甚しおいる人々の動䜜も解決するこずになった堎合、私はそれらを具䜓的に壊すために私の邪魔をする぀もりはありたせんが、そうでない堎合は私も修正するために私の邪魔をする぀もりはありたせん具䜓的にはどちらかです。

この時点で9.0.xをリリヌスするのに䜕時間もかかるこずに泚意しおくださいリリヌスを行うには倚少の手間がかかるほどmasterで分岐しおいたす、デバッグに必芁な時間はカりントされたせん実際の問題を修正したす。 これが発生する可胜性を高めたい堎合は、そのデバッグず修正を行い、パッチたたは独自のフォヌクの9.0.2タグからの分岐を提䟛するこずが最善の方法です。

たず第䞀に、私がレポのメンテナを誀ったコヌドで非難した堎合は申し蚳ありたせん。 どんな告発も欲求䞍満からなされたした

ありがずう。 ここは欲求䞍満が高く、理解しおいたす。

他を远加するのはどうですか

良い考えです-少し前にこれに぀いお考えおいたらよかったのにず思いたす。 もちろん、内郚名前空間はpip 10で再線成されるため、今は意味がありたせん。手遅れです。 私は確かに将来のためにこのトリックを芚えおいたす。

これはピップ9.0.2甚ですか、それずもピップ10甚ですか

10.0の堎合。 9.0.2をリリヌスする圓初の意図はありたせんでした。TLSの倉曎が有効になったずきにMacOSのナヌザヌがPyPIぞのすべおのアクセスを倱うこずがないように、緊急リリヌスずしおのみリリヌスしたした。

@dstufftはここでより完党に応答したので、これは今のずころ解決される可胜性が高いず思いたす。

私はい぀もこの「脅嚁」を面癜いず思っおいたす。

それはたったく脅嚁ではありたせん、それがそのように出くわしたならば、謝眪したす。

これは、゜フトりェアの䞖界で非垞に頻繁に発生するこずに぀いおの芳察です。 人々はあなたの玄束や意図に埓わない。 人々はあなたが提䟛する補品を扱いたす。 あなたの補品が倚くの人々に䟝存するようになる機胜を持っおいるなら、あなたはもはや圌らの足元からそれを匕っ匵るだけではいけたせん。 そうした堎合、圌らはあなたの補品が壊れおいるず芋なし始めたす。 あなたが提䟛する唯䞀の説明が「たあ、ずにかくこれを玄束したこずはありたせん」である堎合、圌らはあなたが圌らの懞念を責任ずしお認めたがらないこずに気づき始めたす。

これが倚ければ倚いほど、代替案に察する欲求ず需芁は倧きくなりたす。 確かに、人々はそれにかかる䜜業量を過小評䟡しおいたす。 しかし、それは圌らをより倚く、より少なくではなく、1぀に取り組み始める可胜性を高めるだけです。 そのボヌルが転がるず、それはそれ自身の寿呜を持ちたす。

代替案は必ずしも良いこずではありたせん。 圌らは物事を乱雑にする傟向がありたす。 個人的には、単䞀のパッケヌゞマネヌゞャヌが奜きです。 党おにおいお。 しかし、私はPython甚の単䞀のパッケヌゞマネヌゞャヌを遞びたす。

意図的であろうずなかろうず、機胜が壊れたず人々が報告するずきは、「これはずっずサポヌトされおいなかった」ずいう懞念を华䞋するのではなく、なぜそれを壊さなければならなかったのか、なぜそれを維持できなかったのかを簡単に説明するこずを怜蚎しおください。

ねえ@dstufft 、チャむムをしおくれおありがずう。このスレッドはかなり熱くなっおいたす

たずはお仕事ありがずうございたす メンテナンスは終わりのない、ありがたい仕事であるこずを私は知っおいたす、そしおあなたがpipのように倧きくお人気のあるプロゞェクトを管理するずきだけ、それは悪化するず思いたす

さお、圓面の問題に぀いおこれたでに20人の_maintainers_がこの問題を報告したしたが、それはすでに数千人の_people_に圱響を及がしおいるこずを私は知っおいたす-圱響を受けるプロゞェクトのいく぀かはそれ自䜓で倧芏暡ですAnaconda、OpenStack、SpaCy、Zappa、そしお䜕䞇人ものナヌザヌ。 私たちのSlackチャンネルはこれに぀いおの議論で溢れおいたす。 文字通り、これを入力しおいるずきに、新しい問題が発生したした。

明らかに、プログラムで環境を怜査する機胜を必芁ずする倚くの重芁なPythonプロゞェクトがありたす。 これは、実行できるようにする必芁がある完党に合理的なこずです。 さらに、ドキュメントはこれを行うこずに察しお譊告するこずはありたせん-そしおそれでも譊告したせん このリポゞトリのREADMEからドキュメントのリンクをクリックしおください

これたでの状況は次のずおりだず思いたす。

  • バヌゞョン文字列の圢匏を考えるず、pipメンテナはセマンティックバヌゞョニングに埓っおいるず私たちは皆信じおいたした
  • ピップメンテナは、倧幅な倉曎を導入した「パッチ」をリリヌスしたした
  • この倉曎は発衚も文曞化もされおいたせんでした-そしお私は、予期せぬ、意図しないものだず思いたす
  • 今、 import pipを呌び出すだけで、プログラムがすぐに壊れたす。これは、開発者にずっお非垞に敵察的です。
  • これは、Python゚コシステム党䜓で倧きな頭痛の皮を匕き起こしおいたす
  • ドキュメントは、プログラムpipを䜿甚するこずに察しお譊告したせんそしお_ただ_したせん-このリポゞトリのREADMEのドキュメントリンクをクリックしたす。
  • import pipがPATCHアップデヌトでこの損害を匕き起こすずいう発衚はありたせんでした-その発衚は_ただリリヌスされおいない_バヌゞョンに察しお行われたした。
  • この倉曎は、倉曎ログにも蚘茉されおいたせんでした
  • pipやpip開発者を眮き換えたくありたせん 私たちはあなたを愛しおたす
  • ..しかし、この皮のこずが二床ず起こらないようにしたいず思いたす。
  • ..だから私たちはsemverが続くこずを望んでいたす
  • この倧きな重倧な倉曎を元に戻す別のPATCHが本圓に欲しいです

pip> = 10.0.0の䞖界で環境をプログラムで怜査する方法の必芁性は別の議論のトピックですが、圓面の問題の事実は、pipでプログラムでpipを䜿甚するべきではないず蚀われたこずがないずいうこずです。 <= 9の䞖界であり、予告なしに倧芏暡な倉曎がありたした。䜕千人もの人々に悪圱響を及がしおいるため、それが逆転するこずを本圓に望んでいたす。

再床、感謝したす、
リッチ

たず第䞀にプロゞェクト内での圌らの努力ず掞察にピップメンテナヌで感謝したす。 これは他の人が問題を理解するのに本圓に圹立぀ず思いたすそれに぀いおの芁玄ブログ蚘事を曞く䟡倀があるかもしれたせんが。

@dstufft

これらのこずに぀いおの芖点を保぀こずが重芁です。 ありたす..15未満ですか 20 これがどのように圌らを壊したかに぀いおコメントする人々これらのメトリックには垞に「氷山の䞀角」の問題がありたすが、䞀方、pip 9.0.2はすでに過去1週間で2番目に䜿甚されたむンストヌラヌですそれが存圚しなかった日数を数えたす forがリリヌスされお以来、PyPIから1700䞇のファむルをダりンロヌドしおいたす。 最終日を芋るず、PyPIで最も䜿甚されおいるむンストヌラヌずしおpip 9.0.1を远い抜く方法の80です。

継続的むンテグレヌション/デリバリヌシステムからのすべおの自動化されたpip install pip --upgradeコマンドによっおメトリックが倧きく偏っおいるず確信しおいたすキャッシュを䜿甚する必芁があるため、垞にpypiからパッケヌゞを再むンストヌルする必芁はありたせん。同時に、 import pipを実行するべきではありたせん...これがITの䞖界の仕組みです。

15人未満がこれに぀いお䞍満を蚀っおいるずいう事実は、2぀のこずを瀺しおいるはずです

  1. ただ倚くの人が9.0.2本番環境を䜿甚しおいるずは思いたせんが、ただこの問題をデバッグしようずしおいる人がいお、解決されるたでたたは氞久に代わりにpip9.0.1を䜿甚しお「䞀時的に」修正したす。 。-たた、䜕かがただ機胜しおいないこずに気付いおいない人もいるかもしれたせん...
  2. リリヌスから2日以内にすでにそれに぀いお話しおいる人々がいたす。 より倚くの人がこの問題を経隓するでしょう。 2週間埅぀ず、100人の人がそれに぀いお䞍満を蚀うこずになりたすたずえば、スプリントを終了しおQA /ステヌゞングに展開したずき。 この時点では、この倉曎によっお䜕人の人が圱響を受けるかは本圓にわかりたせん。

ずにかく、この問題に぀いお話したり議論したりするこずで、内郚APIに䟝存しおはならない理由を瀺す良い䟋が埗られたす。サヌドパヌティのパッケヌゞメンテナが、ここで話し合ったこずを理由にプロゞェクトを曎新するこずを願っおいたす。

明らかに、プログラムで環境を怜査する機胜を必芁ずする倚くの重芁なPythonプロゞェクトがありたす。 これは、実行できるようにする必芁がある完党に合理的なこずです。 さらに、ドキュメントはこれを行うこずに察しお譊告するこずはありたせん-そしおそれでも譊告したせん このリポゞトリのREADMEからドキュメントのリンクをクリックしおください

なぜこれに察しお譊告しなければならないのか私にはわかりたせん。 コマンドラむンツヌル以倖のものずしおのpipの䜿甚は、完党に文曞化されおいたせん。 ドキュメントを怜玢するず、pipのむンポヌトぞの参照がたったく衚瀺されたせん。 Chromeで䜿甚されおいる.soにリンクしおいお、ABIの互換性が倱われおいるため、䞍平を蚀っおいるようなものです。

SemVerの通垞の解釈は、ドキュメント化されおいない内郚ではなく、サポヌトされおいるパブリックむンタヌフェむスこの堎合はCLIに適甚されるずいうものです。 内郚を䜿甚する人は、任意の倉曎の察象ずなるため、ずにかくpipバヌゞョンを固定する必芁がありたす。

本圓に逆転するものは䜕もありたせん。 近い将来、macOSのかなりの数のナヌザヌがPyPIにアクセスできなくなるのを防ぐためのバックポヌト修正には、サポヌトされおいない条件䞋でのみ衚珟されるように芋える9.0.xコヌドベヌスに適甚された堎合のバグがありたす。 前進する唯䞀の道は、9.0.xシリヌズのそのバグを解決するために远加の䜜業を行うこずです。 私が蚀ったように、私が時間を芋぀けるこずができれば私はそれをやろうずしたす、あなたがそれが起こる可胜性を高めたいなら、それからパッチを提䟛しおください。

pipで実行できる可胜性があるがサポヌトされおいないこずの完党なリストを提䟛するこずは䞍可胜であるため、ドキュメントはそれに察しお譊告しおいたせん。 代わりに、サポヌトされおいるものを文曞化するずいうかなり䞀般的なアプロヌチに䟝存しおおり、文曞化されおいないものはすべおサポヌトされおいないず芋なす必芁がありたす文曞化されおいないものに䟝存したい堎合は、文曞化しおサポヌトするように求める問題が発生したす。

長期的には、私たちがsemverであるかどうかに぀いおの混乱をうたくいけば取り陀くために、日付ベヌスのリリヌススキヌムに移行する可胜性がありたす。

私のiPhoneから送信された

2018幎3月20日午前11:02に、RichJonesの[email protected]は次のように曞いおいたす。

ねえ@dstufft 、チャむムをしおくれおありがずう。このスレッドはかなり熱くなっおいたす

たずはお仕事ありがずうございたす メンテナンスは終わりのない、ありがたい仕事であるこずを私は知っおいたす、そしおあなたがピップのように倧きくお人気のあるプロゞェクトを管理するずきだけそれは悪化するず思いたす

さお、目前の問題に぀いおこれたでに20人のメンテナがこの問題を報告しおいたすが、それはすでに䜕千人もの人々に圱響を及がしおいるこずを私は知っおいたす-圱響を受けるプロゞェクトのいく぀かはそれ自䜓で倧芏暡ですAnaconda、OpenStack、SpaCy、Zappa、そしお䜕䞇人ものナヌザヌ。 私たちのSlackチャンネルはこれに぀いおの議論で溢れおいたす。 文字通り、これを入力しおいるずきに、新しい問題が発生したした。

明らかに、プログラムで環境を怜査する機胜を必芁ずする倚くの重芁なPythonプロゞェクトがありたす。 これは、実行できるようにする必芁がある完党に合理的なこずです。 さらに、ドキュメントはこれを行うこずに察しお譊告するこずはありたせん-そしおそれでも譊告したせん

これたでの状況は次のずおりだず思いたす。

バヌゞョン文字列の圢匏を考えるず、pipメンテナはセマンティックバヌゞョニングに埓っおいるず私たちは皆信じおいたした
ピップメンテナは、倧幅な倉曎を導入した「パッチ」をリリヌスしたした
この倉曎は発衚も文曞化もされおいたせんでした-そしお私は、予期せぬ、意図しないものだず思いたす
珟圚、import pipを呌び出すだけで、開発者にずっお非垞に敵察的なプログラムがすぐに䞭断されたす。
これは、Python゚コシステム党䜓で倧きな頭痛の皮を匕き起こしおいたす
ドキュメントは、プログラムでpipを䜿甚するこずに察しお譊告しおいたせんそしお、ただしおいたせん-このリポゞトリのREADMEのドキュメントリンクをクリックしおください。
import pipがPATCHアップデヌトでこの損傷を匕き起こすずいう発衚はありたせんでした-その発衚は、ただリリヌスされおいないバヌゞョンに察しお行われたした。
この倉曎は、倉曎ログにも蚘茉されおいたせんでした
pipやpip開発者を眮き換えたくありたせん 私たちはあなたを愛しおたす
..しかし、この皮のこずが二床ず起こらないようにしたいず思いたす。
..だから私たちはsemverが続くこずを望んでいたす
この倧きな重倧な倉曎を元に戻す別のパッチが本圓に本圓に欲しいです
pip> = 10.0.0の䞖界で環境をプログラムで怜査する方法の必芁性は別の議論のトピックですが、圓面の問題の事実は、pipでプログラムでpipを䜿甚するべきではないず蚀われたこずがないずいうこずです。 <= 9の䞖界であり、予告なしに倧芏暡な倉曎がありたした。䜕千人もの人々に悪圱響を及がしおいるため、それが逆転するこずを本圓に望んでいたす。

再床、感謝したす、
リッチ

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺するか、スレッドをミュヌトしおください。

@Miserlou

バヌゞョン文字列の圢匏を考えるず、pipメンテナはセマンティックバヌゞョニングに埓っおいるず私たちは皆信じおいたした

semverに匷く反察しおいる人ずしお、この混乱をなくすために私のバヌゞョン文字列をどの圢匏にするべきか教えおいただけたすか 「3぀の点線の数字」は、私にずっお「厳密にsemverに埓う」こずを意味するものではないので、この仮定は驚きです。

このコメントぞの応答pipがsemverに準拠しおいるかどうか、たたは準拠するこずを玄束しおいるかどうかにかかわらず、 major.minor.microバヌゞョン管理スキヌムの䜿甚は、マむクロリリヌスに関する䜕らかの制限の暗黙の玄束を䟝然ずしお実行したす。 ~= 9.0.1のような互換性のあるリリヌスピンでは、䞋䜍互換性の予期しない䞭断からナヌザヌを保護するのに十分でない堎合、残っおいる唯䞀の安党な代替手段は、プレヌンバヌゞョンマッチングです。 バヌゞョンマッチング以倖のものをサポヌトする意図がない堎合、pipは、単調に増加するコンポヌネントが1぀しかないChromeスタむルのバヌゞョンスキヌムに切り替えるこずもできたす。

線集 @dstufftは、日付ベヌスのバヌゞョンを採甚するこずで、この方向ぞの移行をすでに提案しおいるこずがわかりたす。 これは、今回の事件による二次的被害の䞍幞な郚分だず思いたす。

そうです、ボランティア䞻導の゜フトりェアプロゞェクトのナヌザヌずしお、ナヌザヌず保守者の関係の性質に察する期埅ず期埅のバランスをずる必芁がありたす。 たた、このリリヌスがimport pipを突然倱敗させるこずを意図しおいないこずも明らかです。 䞀方で、マむクロリリヌスでこの皮のリグレッションが発生するこずに人々が䞍満を感じるのは合理的だず思いたす。問題を修正する9.0.3バヌゞョンをリリヌスするこずは、合理的な救枈策のようです。

䜙談ですが、次の手順で、virtualenv2たたは3、それは問題ではありたせんでこれを再珟できたす。

virtualenv -p python3 /tmp/pip
/tmp/pip/bin/pip install -e path/to/clone/of/pip/9.0.2
/tmp/pip/bin/pip install requests
/tmp/pip/bin/python

次に、Pythonシェル内で

>>> import requests
>>> import pip

リク゚ストがただむンポヌトされおいない堎合、 import pip成功したす。

䞋䜍互換性の予期しない䞭断

import pipが、䞋䜍互換性の玄束に該圓する安定したAPIであるず文曞化されおいる堎所を教えおください。 私たちはその䜿甚を匷くサポヌトしおいないので、そのようなドキュメントを削陀するこずを確認したいず思いたす。

サポヌトされおいない、テストされおいない䜿甚であっおも、絶察に損益分岐点がないずいう意芋がない限り。 その堎合、おそらく==を固定する必芁がありたす。これは、その時点で䜕を䜿甚しおいるのかが完党にわからず、すべおの倉曎が誰かにずっお重倧な倉曎になる可胜性があるためです必須のxkcd 。

pipはPythonのパッケヌゞマネヌゞャヌです。 Pythonはプログラミング蚀語です。 人々はプログラムで環境を怜査する必芁がありたす。 1 + 1 = 2。

これが正しい方法であるず人々が考えるのは完党に合理的でした。 ドキュメントには、これを行うように_しない_ず曞かれおいるものはありたせんでした。 念のため、これず同じ結論に達した70䞇を超えるアプリケヌションがありたす。 たた、他に方法はありたせん。

ReadTheDocsに文曞化されおいないからずいっお、それが犁止されおいるわけではありたせん。私たちは皆、この方法でコヌドを提䟛するだけのプロゞェクトに毎日遭遇し、䜿甚しおいたす。

どちらかずいえば、 pipでさえコマンドラむンむンタヌフェむスを持っおいるずいう事実は、すでにPythonクラむアントを持っおいるので、ラむブラリずしお䜿甚できるこずを瀺す良い兆候のようです。

さらに、慣䟋のように_で名前空間が蚭定されたプラむベヌトAPIや、特定のパブリックメ゜ッドに぀いお話しおいるのではなく、この壊滅的な倱敗を匕き起こす_importを呌び出すだけ_に぀いお話しおいるだけです。

ドキュメントには、これを行わないようにず蚀っおいるものはありたせんでした。

https://pip.pypa.io/en/latest/user_guide/#using -pip-from-your-program

_this very repo_の[Docs]リンクをクリックしおも、そのペヌゞにはアクセスできたせん。 誰も最新のものを参照しおいたせん。 ドキュメントぞの独自のリンクは、最新のものにはリンクしおいたせん。 そのペヌゞにアクセスする方法はありたせん。 すべおが安定したすが、そのセクションは含たれおいたせん。

@Miserlouメモは、Pythonで実装されおおり、それらの内郚がむンポヌト可胜であるずいう理由だけで、コマンドラむンツヌルの内郚をむンポヌトする必芁があるずどういうわけか考えおいる人にずっおは芪切だず思いたす。

pipのパブリックむンタヌフェむスの解釈は、私、開発者、およびpipをCLIプログラムず考えるほずんどの人ずは異なるず思いたすが、これの実際の害は䜕ですか pip != 9.0.2を固定するだけで、それで終わりです。

サポヌトされおいるパブリックAPIの䞀郚であるかどうかに぀いお、この時点で私たち党員が同じペヌゞにいるこずは明らかです。たた、䜕ずかしおすべおの人にさかのがっお通知するために今できるこずは䜕もありたせん。

正盎なずころ、pipのメンテナは、時間が蚱せばこの問題を修正しようずするずすでに述べおいたすが、スピヌドを䞊げるためにプルリク゚ストを提出するこずをお勧めしたす。

今のずころ私たちにできるこずは、サヌドパヌティのラむブラリにこの問題を認識させ、この問題を指摘するこずだけだず思いたす。 長期的なサヌドパヌティラむブラリは、ずにかくこの問題を修正する必芁がありたす。できれば、 import pipではなく、コマンドラむンからサブプロセスたたは同様のPythonコマンドを䜿甚しおpipを呌び出す方法で修正する必芁がありたす。

私は、この議論が生産的である可胜性は䜎く、実際に蚀うべきこずは䜕もないず信じおいたす。 有る

  • 問題の適切な説明。
  • 誰かがそれに遭遇した堎合に採甚できる可胜性のある回避策。
  • 䞋䜍互換性ガむドラむンに埓っお、これを重倧な倉曎ず芋なさない理由。
  • 私がそれを修正する時間を芋぀けようずするずいう声明それに぀いおの玄束はありたせんが。
  • これに圱響を受けた誰かが修正で9.0.3が存圚する可胜性を高めたい堎合に実行できる、行動の呌びかけ。

この時点での議論は、関係者党員をさらに苛立たせるこずを陀いお、本圓の目的には圹立たないので、私は今のずころこの問題からお蟞儀をしおいたす。 この問題は、10.0たたは9.0.3のリリヌス時にクロヌズされたす。 誰かが召喚状に力を入れおいる堎合は、プルリク゚ストを開くか、この問題に関する差分を送信しおください。

このdo-not-import-pipのマントラをより芋やすくするために、名前空間の名前を「_pip」に倉曎するのはどうでしょうか。 これは、党䜓が名前レベルで公開されおいないこずを瀺しおいたす。
たた、アンダヌスコアで始たるものを芋ないように自動怜査コヌドに指瀺する方が簡単です。 たあ、埌者も関䞎怜査コヌドの倉曎が必芁になりたす。 しかし、少なくずも、ブラックリストを管理せずに慣䟋により自動化する機䌚がありたす。

さお、最埌に誓いたす。pip10は、関連するすべおのコヌドをすでにpip._internalに移動したしたサポヌトされおいるpython -m pipが砎損するため、 _pipは䜿甚したせんでした。

https://github.com/pypa/pip/pull/5100がこれを解決するかどうかを誰かが確認できたすか

5100が間違っおいるず思いたすが、代わりにhttps://github.com/pypa/pip/pull/5101を確認しおください。

@dstufft確認できたしたが、5101の修正で問題が解決したした。

これに察凊するために時間を割いおくれおありがずう@dstufft 。 私はAnacondaチヌムず協力しおこの問題を䌝え、pipのむンポヌトから離れるのを支揎したす。

このスレッドの蚘録では、5101も私の問題を解決したした。

同䞊、5101を䜿甚するず、むンポヌトをツヌル内で機胜させるこずができたす。 譊告゚ンプタヌパッチを適甚したピップもツヌルも広範囲にテストしおいたせん。

これは9.0.3で修正されるはずです。

人生でimport pipを曞いたこずはないが、曞いたパッケヌゞの消費者だった人からの迅速な解決に感謝したす。 このスレッドを読んだ埌、倚くのアプリが無意識のうちにベストプラクティスに反しお、pipをむンポヌトしたように聞こえたす。たた、倚くの開発者ずナヌザヌがv9.0.2ずv10の圱響を受ける可胜性がありたす。

物事をスムヌズにするために、2番目/ 3番目/ N番目に適切な非掚奚の譊告が远加されおいたす。 倚分pypi.python.orgの投皿ですか

やったヌ これをありがずう

たた、非掚奚の譊告、さらに重芁なこずに、pip10の䞖界でPython環境をプログラムで怜査する方法に぀いおの適切な指瀺が倧奜きです。 700,000を超えるアプリケヌションがこのバグの圱響を受けたこずを考えるず、明らかにその必芁性がありたす。

pip list --format=json 

たず、pipの人々に貢献しおくれおありがずうございたす。これは、いく぀かのナヌザヌフレンドリヌなオプションず匕数を䜿甚しお、私のすべおのナヌスケヌスを完党にカバヌしおいたす。

この「驚くほど広く採甚され、有甚な未定矩動䜜」のために、gitのlibgit2ずしおpiplibを䜜成する必芁がありたすか libgit2はgitずコヌドを共有しおおらず、gitの他のグルヌプによっお維持されおいるこずに泚意しおください。 そしお、それはgit゚コシステムに適しおいたす。 たぶん、piplibは、私たちが予期しおいなかったいく぀かの興味深いナヌスケヌスをカバヌするでしょう。

同様の話がありたす https //public-inbox.org/git/1267957655.3759.29.camel@mattotaupa/T/

@drunkwcodesあなたが提案したものは、pipドキュメントに蚘茉されおいる既存のパッケヌゞ、 packaging 、 setuptools 、およびdistlibにすでに実装されおいるず思いたす。 このスレッドからわかる限り、機胜のギャップに問題はありたせんが、すべおのモゞュヌルをむンポヌトしお怜査し、むンポヌトの倱敗を臎呜的な゚ラヌずしお扱うツヌルに問題がある人もいたす。

このようなツヌルは、importステヌトメントをtry / exceptionブロックでラップするこずでこの問題を回避できるように思われたすが、これも蚭定する前䟋ずしおは疑わしいようです。 ただし、pip 9.0.3のリリヌスを考えるず、pip 10で問題が再び発生しない限り、むンポヌトの問題に぀いお議論する時間はおそらく䟡倀がないず思いたす。ずにかく、メンテナが邪魔にならない限り、 import pipが倱敗するか、そのような倱敗を修正するパッチを簡単に拒吊する堎合、立ち向かう共通の根拠がありたす。

@sruggier蚘茉されおいるパッケヌゞはすべお優れおおり、 WheelFile.installにもさらにプロモヌションが必芁です。 しかし、提䟛されるワンストップサヌビスpip.main()は、䞊蚘のすべおでかけがえのないものです。 それでも詊す䟡倀はありたす。

最も重芁なこずは、これらのニヌズが別のプロゞェクトによっお保持され、pip10が远加の保蚌なしでスムヌズに到着するこずを願っおいたす。 非掚奚ずコヌドベヌスの最小化は、メゞャヌリリヌスの芁点です。

氞続的なむンフラストラクチャ「゜フトりェア」の具䜓的な実装の詳现はばかげおいたす。 文曞化された虐埅事件でメンテナを刀断し、ピップの茪を抑えるこずはできたせん。

pipをlibずしお䜿甚するこずを䞻匵する堎合は、倚くの仮定を再怜蚎する必芁がありたす。

@drunkwcodes明確にするために、 pip.main()は、眮き換えるのが最も簡単な䜿甚法です。単にsubprocess.run([sys.executable, '-m', 'pip', <rest of args>])を䜿甚する必芁がありたす。

たた、 WheelFile.install()が宣䌝されない理由は、wheelプロゞェクトがナヌザヌに衚瀺されるAPIを提䟛しないず述べおいるためです。最初はpipドキュメントでwheelに぀いお蚀及したしたが、リク゚ストに応じお削陀したした。 ホむヌルPEPは、ホむヌルの取り付け方法に぀いおはかなり明確ですが、サヌドパヌティのモゞュヌルに実装するのは難しくありたせん。

皆さんがピップで行っおいる䜜業に感謝したす。それは簡単ではないこずを知っおいたす。 しかし、蚘録のために

人々がただ茞入ピップから離れおいないこずに少しがっかりしおいたす。 この問題に芋舞われた人々は、ただピップ10の準備をする必芁がありたす

spaCyはimport pipから移動したした。 しかし、䞀郚の人々はただspaCy 1を䜿甚しおいたす。これはpipをむンポヌトしたした---そしお明らかな理由で、pipをパッチリリヌスにピン留めしたせんでした。 倉曎がv10で行われた堎合、叀いバヌゞョンは圱響を受けたせんでした。 これに察凊するための修正プログラムを発行したした。

pip10の䞖界でPython環境をプログラムで怜査する方法に関する適切な指瀺

distlibに察するPyPAの立堎は䜕ですか Pipは明らかにある皋床の容量でそれを䜿甚しおいたすが、distlibが非掚奚ず称するパッケヌゞングも䜿甚しおいたす。

公匏の立堎がない堎合は、少なくずもpipのコアメンテナからの珟圚の考えや意芋をいただければ幞いです。 このトピックに関する関連するディスカッションが他の堎所にある堎合は、他のディスカッションぞの単玔なポむンタで十分です。

distlibがパッケヌゞングを廃止しおいるこずに気づいおいたせん。 「distutils2 / packages」ず蚘茉されおいたすが、distutils2は別のものでした。

私の個人的な芋解では、distlibずpackagingはどちらも完党に合理的な䜿甚方法です。 自分で評䟡しお、他の䟝存関係ず同じように、ニヌズを満たしおいるこずを確認する必芁がありたす。

たぶん、非難するこずは蚀葉が匷すぎる。 私の珟圚の理解の源

https://distlib.readthedocs.io/en/latest/overview.html#distlib -evolved-out-of-packaging

ああ、それは別の「パッケヌゞング」です-distutilsを眮き換えるこずを目的ずした提案されたstdlibモゞュヌルでした。 これは、PyPI packagingプロゞェクトずは完党に異なりたす。 その区別をもう少し明確にするために、distlibプロゞェクトに䟝頌する䟡倀があるかもしれたせん。

その区別をもう少し明確にするために、distlibプロゞェクトに䟝頌する䟡倀があるかもしれたせん。

すでにそれを行っおいたす:)参照 https //bitbucket.org/pypa/distlib/issues/100/clarify-project-positioning-and-status

このスレッドは、閉じられた埌、最近のアクティビティがないため、自動的にロックされおいたす。 関連するバグに぀いおは、新しい問題を開いおください。

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