Pip: 「upgrade」および「upgrade-all」コマンドを远加したす

䜜成日 2011幎03月15日  Â·  251コメント  Â·  ゜ヌス: pypa/pip

2020幎4月の珟実を反映しお曎新

この問題は圓初、パッケヌゞのアップグレヌド時に異なる動䜜をする新しいupgradeコマンドを远加するこずにより、 pip install --upgradeの動䜜を倉曎するこずを目的ずしおいたした。 叀い再垰的な「熱心な」デフォルトは倚くの人に悲しみを匕き起こしたした304しかし、これに぀いお倚くの議論をした埌、採甚されたアプロヌチは--upgrade-strategyフラグを远加するこず

「すべおのパッケヌゞをアップグレヌドする」機胜の远跡の問題は4551です。

upgrade auto-locked enhancement

最も参考になるコメント

今埌10幎間でこれを実装する予定ですか

党おのコメント251件

「upgrade」は、「install--upgrade」の簡単な゚むリアスです。 もう少し考える必芁がありたす
「アップグレヌド-すべお」に぀いお; 䞀぀には、パッケヌゞをアップグレヌドするだけだず思いたす
sys.prefix内 ぀たり、virtualenv内にいる堎合は、
グロヌバルパッケヌゞをアップグレヌドしたす。 それが匕っ越す理由になりたす
UninstallPathSet.can_uninstallをより䞀般的な名前の関数たたは
InstallRequirementのメ゜ッドなので、䞀般的な「これに觊れるこずはできたすか」
決定。


Original Comment By: Carl Meyer

蚘録のために、私はそれがする胜力を考えるず良い考えのように思えるず思いたす
アップグレヌドする前にアンむンストヌルしおください。 私は--allオプションを奜むが
独自のupgrade-allコマンドの代わりにupgrade 。

can_uninstallに関しおは、私は同意したす。これはおそらく持っおいるず䟿利です。
ずにかくグロヌバルに。


Original Comment By: Jannis Leidel

install--upgradeの゚むリアスずしおアップグレヌドするこずに完党に反察しおいるわけではありたせん。 しかし
少し些现なこずのようです。

アップグレヌド-すべお、「アップグレヌド可胜」ずは䜕かを理解する必芁がありたす。 おそらく1぀
前提条件はそれが䜏んでいるこずです/lib/pythonX.Y/site-packages
単にsys.prefixの䞋では十分ではありたせん。

「zipむンポヌト」のようなものを蚱可する堎合芪からパッケヌゞを取埗するため
環境をvirtualenv環境にそしおおそらくその䞭にパッケヌゞ化する
芪環境をアップグレヌドするべきではありたせんが、それが䜕であるかは100明確ではありたせん
ナヌザヌは期埅したす。

「pipアンむンストヌル」で線集可胜なパッケヌゞをアンむンストヌルしおみたしたが、かなり
.egg-linkを削陀し、easy-install.pthを曎新するこずを合理的に提案したした。 しかし、それは
パッケヌゞを合理的にアップグレヌドできなかったため、can_uninstallは倚少
can_upgradeずは異なりたす。


Original Comment By: Ian Bicking

ええ、あなたは正しいですcan_uninstallずcan_upgradeは異なりたす。

「pipimport」があったずしおも、アップグレヌドしたくないず思いたす
むンポヌトされたグロヌバルパッケヌゞ。 しかし線集可胜なものず䞀緒にそれは「
この譊告をコン゜ヌルにアップグレヌドしたす。


Original Comment By: Carl Meyer

このバグの+1


Original Comment By: smyrman

問題167は、この問題の重耇ずしおマヌクされたした。


Original Comment By: Carl Meyer

1

(echo pip; pip freeze | awk 'BEGIN{FS="=="}{print $1}') | xargs sudo pip

むンストヌル-U

これにより、むンストヌルされおいるすべおのパッケヌゞpip自䜓を含むがアップグレヌドされたす。 もしも
virtualenvで実行する堎合、おそらくsudoを䜿甚する必芁はありたせん。

もちろん、倱敗のリスクが高くなりたす-パッケヌゞの1぀をアップグレヌドする堎合
倱敗するずプロセス党䜓が倱敗したすのport upgrade outdatedに䌌おいたす
MacPorts。


Original Comment By: Tomasz Elendt

アップグレヌドの+ 1--all

なぜ珟時点ですべおのPythonモゞュヌル管理機胜がダメなのですか なんでだめなの
1぀は単玔なアップグレヌド+アップグレヌド--allコマンドを提䟛したすか


Original Comment By: Anonymous

実装を詊しおみおもかたいたせんが、最初にいく぀か質問したす。

'--all'をサポヌトする新しい「アップグレヌド」コマンドの䞀般的なコンセンサスです
オプションをpipに远加したすか

pipアップグレヌドの実行は、それが実行されおいる環境にのみ圱響するはずです。
virtualenvから実行するず、そのenvにロヌカルなパッケヌゞのみがアップグレヌドされたす。
非virtualenvの堎合も同じです


Original Comment By: Kelsey Hightower

ケルシヌ䞊蚘の議論を読んだずころ、本圓のこずは䜕も芋えたせん
それに反察。 䜜るのは玠晎らしい远加だず思いたす。 メむン゚ッゞケヌスは
線集可胜なVCSのむンストヌル-Ianが提案したように、「アップグレヌド」コマンドだず思いたす
それらに觊れおはいけたせん。 すべおのコンテキストで「アップグレヌド」が䜕を意味するかを定矩する
線集可胜な可胜性ロヌカルリポゞトリがむンストヌルされ、線集可胜であり、
起源はほが䞍可胜だず思いたす、そしおたずえ䞭途半端に働いおいたずしおも
定矩をたずめるこずができたす、それはメンテナンスを増やすだけです
すでに脆匱なVCSバック゚ンドの負担。 ただし、線集䞍可胜な堎合は、
それ


Original Comment By: Carl Meyer

カヌルかっこいい、始めおこのチケットを結果で曎新したす。


Original Comment By: Kelsey Hightower

アップグレヌドコマンドの䜜業䞭に、次の質問が出おきたした。

  • どのパッケヌゞを指定するためにアップグレヌドサポヌトを
    アップグレヌドしたすか 芁件ファむルをサポヌトする必芁がありたすか
  • pipアップグレヌドはただむンストヌルされおいないパッケヌゞをどのように凊理する必芁がありたすか
    䞍足しおいるパッケヌゞをむンストヌルする必芁がありたすか
pipアップグレヌドのナヌスケヌスずその凊理方法
# pip upgrade some_installed_package

Try and locate a package that satisfies the requirement. If the

芁件が満たされおいない芁求されたバヌゞョンぞのアップグレヌド。 これも
叀いバヌゞョンぞのアップグレヌド。

# pip upgrade --all

Locate all installed packages (non-editables) and update them to a new

利甚可胜な堎合はバヌゞョン。

# pip upgrade some_other_package

Warning: some_other_package not installed, use pip install

some_other_package。

私の目暙は、アップグレヌドコマンドを本圓にシンプルに保぀こずです。 アップグレヌドできたす
新しいバヌゞョンたたは叀いバヌゞョンぞの特定の線集䞍可胜なパッケヌゞ。 たたはアップグレヌドできたす
線集䞍可胜なすべおのパッケヌゞを新しいバヌゞョンに。

考え


Original Comment By: Kelsey Hightower

「pipupgrade」は「pipinstall--upgrade」の正確な゚むリアスである必芁があるず思いたす。
今は動䜜したす。 これは、はい、芁求されたパッケヌゞをむンストヌルするこずを意味したす。
むンストヌルされおいたせん。はい、-rを䜿甚しお芁件ファむルを受け入れたす。 圌のはず
ほずんど新しいコヌドなしで実行可胜です。

アップグレヌド--allは、珟圚のリストを芋぀けるためにいく぀かのコヌドを必芁ずしたす
むンストヌルされたアップグレヌド可胜なパッケヌゞ。 次に、そのリストを枡しおむンストヌルする必芁がありたす
-䞊蚘のようにアップグレヌドしたす。


Original Comment By: Carl Meyer

カヌル、返事ありがずう。 私はあなたが持っおいる道をかなり進んだ
説明された。 今日の埌半に、いく぀かの実行䟋を投皿できるようになるはずです。


Original Comment By: Kelsey Hightower

コヌドのほずんどを完了したした。コヌドを投皿する前に少し磚きをかけたす
レビュヌ甚。

TODO

  • テスト
  • フィルタ芁件ファむル。 線集䞍可胜なものをパッケヌゞのリストに远加したす
    アップグレヌド。
upgradeコマンドを䜿甚しおpipを実行する
# pip upgrade --all

All packages up-to-date


# pip upgrade --all -v

Packages installed at latest version:

  pip: 0.8.2 (latest)

  distribute: 0.6.14 (latest)

  Python: 2.7.1 (latest)

  wsgiref: 0.1.2 (latest)

All packages up-to-date


# pip upgrade PyYAML

Package updates available:

  PyYAML: N/A (installed) 3.09 (latest)

Downloading/unpacking PyYAML

  Downloading PyYAML-3.09.tar.gz (238Kb): 238Kb downloaded

....

Successfully installed PyYAML

Cleaning up...


# pip upgrade --all -v

Packages installed at latest version:

  pip: 0.8.2 (latest)

  distribute: 0.6.14 (latest)

  PyYAML: 3.09 (latest)

  Python: 2.7.1 (latest)

  wsgiref: 0.1.2 (latest)

All packages up-to-date


# pip upgrade PyYAML==3.08

Downloading/unpacking PyYAML==3.08

....

Successfully installed PyYAML

Cleaning up...


# pip upgrade --all -v

Packages installed at latest version:

  pip: 0.8.2 (latest)

  distribute: 0.6.14 (latest)

  Python: 2.7.1 (latest)

  wsgiref: 0.1.2 (latest)

Package updates available:

  PyYAML: 3.08 (installed) 3.09 (latest)

Downloading/unpacking PyYAML

...

Successfully installed PyYAML

Cleaning up...

  Removing temporary dir /root/upgrade_env/build...

Original Comment By: Kelsey Hightower

最埌の䞀連の質問私は願っおいたす

  • pipアップグレヌドで芁件ファむルを解析し、
    線集可胜 URL芁件はどうですか

芁件ファむル内の線集䞍可胜なアむテムごずに、
それ以降のバヌゞョンのむンデックス。 これを行うには、私は収集する必芁がありたす
芁件ファむルの各行のパッケヌゞ情報。

ヒントは倧歓迎です珟圚、 pip.req.parse_requirementsを参照しおい

  • pip upgradeは、むンストヌルする
    これは私が今しおいるこずです。 そうでない堎合、アップグレヌドコマンドはどのように決定する必芁がありたすか
    アップグレヌドがある堎合は

珟圚、アップグレヌドリストにパッケヌゞを远加しおいるのは次の堎合のみです。

  • パッケヌゞがむンストヌルされおいたせん
  • アップグレヌドが利甚可胜でありむンデックスからの最新バヌゞョン、明瀺的ではありたせん
    バヌゞョンが芁求されたした
  • 芁求されたバヌゞョンは、むンストヌルされおいるバヌゞョンずは異なりたすバヌゞョンミス
    マッチ。
  • フィルタするたで、芁件ファむルをむンストヌルコマンドに延期しおいたす
    線集䞍可胜な芁件を削陀したす。

Original Comment By: Kelsey Hightower

カヌルはあなたの投皿を読み盎した埌、私は䜕よりも倚くのこずをしおいるようです
必芁。 ブランチをアップロヌドしお、ご芧ください。 行ったかもしれない
新しいバヌゞョンのPyPiをチェックしお船倖に出たす。


Original Comment By: Kelsey Hightower

カヌルはあなたの投皿を読み盎した埌、私は䜕よりも倚くのこずをしおいるようです
必芁。 ブランチをアップロヌドしお、ご芧ください。 行ったかもしれない
新しいバヌゞョンのPyPiをチェックしお船倖に出たす。


Original Comment By: Kelsey Hightower

ええ、あなたは必芁以䞊のこずをしおいるようですね。 ピップむンストヌル
--upgradeは、すでに話し合っおいるすべおのこずを実行したす新しいものをチェックしたす
バヌゞョンなど; すべおの「pipアップグレヌド」は、2ラむナヌパスのようなものでなければなりたせん
すべおをpipinstall--upgradeに倉曎したす。

ここに蚘述される唯䞀の実際のコヌドは、「upgrade--all」を取埗するためのコヌドです。
環境にむンストヌルされおいるアップグレヌド可胜なパッケヌゞの完党なリスト。


Original Comment By: Carl Meyer

ええ、私はそれを知っおいたした。 たあ、私はたくさん孊びたした。 これには必芁ありたせんが
タスク、私はむンストヌルされ、利甚可胜なものを衚瀺する機胜が奜きです
アップグレヌドプロセス䞊蚘のテスト実行を参照。

リファクタリングしおクリヌンアップしたす。 䞊の私のフォヌクの珟圚の倉曎
upgrade-コマンドブランチ。

https://bitbucket.org/khightower/pip/changeset/2bdc202b446c


Original Comment By: Kelsey Hightower

カヌルの提案に埓っおアップグレヌドコマンドを削陀したした私は遠くたで行きたした
そもそも。 結果が気に入ったかどうかはわかりたせんが、ミラヌむンストヌルは行いたす-機胜の

pipは、次の堎合でもパッケヌゞをダりンロヌドしお再むンストヌルしようずしおいるようです。
パッケヌゞはすでにむンストヌルされおおり、最新です。 アップグレヌドするずさらに悪い--all 、pipはpip自䜓を含むすべおを再むンストヌルしたす。 これはどのようにピップですか
アップグレヌドは機胜するはずですか もしそうなら、私はほずんど完了です:)

pipupgradeコマンドの実行
# pip upgrade Mako


Downloading/unpacking Mako

  Running setup.py egg_info for package Mako


    warning: no files found matching '*.jpg' under directory 'doc'

    warning: no files found matching '*.sty' under directory 'doc'

    warning: no files found matching 'autohandler' under directory 'doc'

    warning: no files found matching '*.xml' under directory 'examples'

    warning: no files found matching '*.mako' under directory 'examples'

    warning: no files found matching '*.dat' under directory 'test'

    warning: no files found matching 'ez_setup.py'

Downloading/unpacking MarkupSafe>=0.9.2 (from Mako)

  Running setup.py egg_info for package MarkupSafe


Installing collected packages: Mako, MarkupSafe

  Found existing installation: Mako 0.3.6

    Uninstalling Mako:

      Successfully uninstalled Mako

  Running setup.py install for Mako

    changing mode of build/scripts-2.7/mako-render from 644 to 755


    warning: no files found matching '*.jpg' under directory 'doc'

    warning: no files found matching '*.sty' under directory 'doc'

    warning: no files found matching 'autohandler' under directory 'doc'

    warning: no files found matching '*.xml' under directory 'examples'

    warning: no files found matching '*.mako' under directory 'examples'

    warning: no files found matching '*.dat' under directory 'test'

    warning: no files found matching 'ez_setup.py'

    changing mode of /root/upgrade_env/bin/mako-render to 755

  Found existing installation: MarkupSafe 0.11

    Uninstalling MarkupSafe:

      Successfully uninstalled MarkupSafe

  Running setup.py install for MarkupSafe


    building 'markupsafe._speedups' extension

    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall

-Wstrict-プロトタむプ-fPIC-I / opt / OpenPython-2.7.1 / include / python2.7 -c
markupsafe / _speedups.c -o build / temp.linux-x86_64-2.7 / markupsafe / _speedups.o

    gcc -pthread -shared

build / temp.linux-x86_64-2.7 / markupsafe / _speedups.o -o
build / lib.linux-x86_64-2.7 / markupsafe / _speedups.so

Successfully installed Mako MarkupSafe

Cleaning up...

Original Comment By: Kelsey Hightower

Kelsey-ええ、install--upgradeにはいく぀かのバグがありたす。 特にあなた
13を特定し、パッケヌゞを再ダりンロヌドしお再むンストヌルするこず
すでに最新です。 䜕か違うこずをする必芁はありたせん
新しいupgradeコマンドを䜿甚するず、install--upgradeのバグを修正できたす。

アップグレヌド--allを䜿甚するず、pipがそれ自䜓をアップグレヌドするこずは私には合理的であるように思われたす
利甚可胜なアップグレヌドがある堎合も同様です。 個人的にはアップグレヌドを䜿甚したせん
-すべおなので、それを䜿甚する人々がそれからどのような行動を望んでいるのかわかりたせん
ここ。 明らかに、 13が修正された堎合は、より良い動䜜になりたす。


Original Comment By: Carl Meyer

カヌルに感謝したす、私はこれをたずめお13を芋始めたす


Original Comment By: Kelsey Hightower

時間があれば、私のアップグレヌドコマンドブランチを確認しおください。 その間
既存の単䜓テストを耇補しないようにする単䜓テストに取り組みたす
むンストヌルコマンド。

https://bitbucket.org/khightower/pip/src/fa7b2a6d2bf1/pip/commands/upgrade.py


Original Comment By: Kelsey Hightower

@vababiy 私はあなたのupgrade-commandを詊したしたが、正しく動䜜しないようです...それで私は自分のものを䜜りたした

https://github.com/pypa/pip/pull/313
https://github.com/jedie/pip/commit/7a31d70dabe0e809184fe1b5280c5a7ccf420dd5

@ jedie @ khightowerにコメントを送る぀もりだったず思いたす。 @vbabiyはコメントをここに移行したしたが、upgradeコマンドを蚘述したせんでした。

+1

@kelseyhightower䜕か進歩はありたすか

+1

+1

+1

+1

「+1」だけで問題に぀いおコメントするのはやめおください。 この機胜が必芁であるこずは承知しおいたすが、受信トレむにスパムを送信しおも効果はありたせん。

代わりに、「パッチが完了したした」ずいうコメントを芋おワクワクしたす。 ;

+1

曎新はありたすか これを远加する予定はありたすか、3歳になりたした。

@pradyunhttps  //github.com/pypa/pip/issues/59#issuecomment-9418336を参照しおください

+1

これはもうマヌゞされおいるず思いたした。 私は自分のPythonスキルをほこりを払い、もう䞀床やり盎すこずができたす。

この機胜は1.5に含たれたすか 1.5のドキュメントでそれぞの参照を芋぀けるこずができたせん...

+1

この問題の状況はどうなっおいたすか

988でブロックされおいたす

それがあなたにずっお本圓に重芁である堎合、すべおのパッケヌゞをアップグレヌドするための回避策がありたす。 私はそれを䞊行しお行うためのスクリプトhttps://github.com/ariccio/update-pip-packagesをたずめたしたが、むンタヌネット䞊の他の堎所にも倚くの実装がありたす。

この問題には2぀の郚分がありたす。 upgrade-allはgh-988によっおブロックされる可胜性がありたすが、 upgradeがどのようにブロックされおいるのかわかりたせん。 pip upgradeは、 pip install -U --no-deps単玔な゚むリアスにするこずができたす。 これにより、setup.pyファむルでinstall_requiresを䜿甚する際の䞻な問題の1぀が解決されたす。 これはすぐにできたせんか

pipアップグレヌドは、pip install -U--no-depsの単玔な゚むリアスにするこずができたす

説明から

pip upgradeのようになりたすpip install --upgradeそれは、デフォルトでは非再垰的および提䟛するであろう陀き--recursiveオプション。 珟圚の再垰的なデフォルトの動䜜は、倚くの人に悲しみをもたらしおいたす304。 今すぐ非再垰的なアップグレヌドを行う方法に぀いおは、こちらをご芧

それはpip install -U --no-depsではありたせん

この文脈での「非再垰的」ずは、単に–no-deps意味するのではありたせん。 非再垰的なアップグレヌドは䟝存関係をアップグレヌドしたすが、芪の芁件を満たすために必芁な堎合に限りたす。

@qwcode説明しおくれおありがずう。 それは私が気にかけおいるこずではありたせん。 なぜこれを「非再垰的」ず呌ぶのでしょうか。それでも再垰的ですが、少し賢く/異なっおいたすか

gh-571での議論から、本圓に非再垰的が望たしいデフォルトであるずいう印象を受けたした。 それは確かに理にかなっおおり、 https//github.com/scipy/scipy/commit/8e7ee0c4b3c16のようなコヌドを垞に曞く必芁が

571では、「非再垰的」は--no-depsではなく、あなたが蚀うように「よりスマヌトで異なる」再垰的です。
そのPRからのtest_upgrade_with_needed_recursive_upgrades()テストに泚意しおください。

条件にずらわれるこずなく、3぀のこずがありたす

  1. 「よりスマヌトで異なるアップグレヌド」、぀たり、䟝存関係のアップグレヌドを意味する可胜性のあるOSパッケヌゞで発生する皮類ただし、実際にアップグレヌドが必芁な堎合のみ。
  2. pipが珟圚行うこずは、必芁性や競合の解決に関係なく、すべおの䟝存関係をアップグレヌドするこずです。
  3. --no-deps

1ず2を区別するためのいく぀かの可胜な方法

  1. 「非再垰的」ず「再垰的」
  2. 「通垞」ず「再垰」
  3. 「再垰が必芁な堎合のみ」ず「再垰に関係なく実行する」

私は最高の甚語を䜿甚するこずにオヌプンです...それらが䜕であるかはわかりたせん。

この「必芁な堎合にのみ再垰的」ずいうフレヌズが奜きだず思いたす。 倚分私はここのドキュメントでそれを䜿うべきです

私も奜きです。 3぀のオプションをすべおたずめお説明するずしたす

a. non-recursive
b. only if needed recursive
c. recursive (or "do it regardless recursive")

それは明らかだろう。

次に、適切なデフォルトを遞択したす。 upgradeずinstall -U䞡方に぀いお、aたたはbのいずれかが意味をなしたす。 私はaを匷く奜みたすが、OSパッケヌゞングが行うこずを考えるず、bも理にかなっおいたす。

cデフォルトずしおは意味がないので、 install -Uを倉曎しないずいう決定を再怜蚎しおください。

私がaを匷く奜む理由を明確にするために、bを望んでいおaを取埗しおいる無防備なナヌザヌは、 "non-recursive upgrade can't satisfy all dependencies, please use only-if-needed recursive"ずいうメッセヌゞを読む必芁がありたすが、これはそれほど倧きな問題ではありたせん。 デフォルトがbの堎合、その疑いを持たないナヌザヌは、実際には觊れたくないパッケヌゞのアップグレヌドたたはむンストヌルの倱敗に終わる可胜性がありたす。 回埩には数時間から数日かかる堎合がありたす。

cデフォルトずしおは意味がないので、install-Uを倉曎しないずいう決定を再怜蚎しおください。

install -Uをそのたたにしおおく理由は、互換性の理由だけであり、最終的には非掚奚になりたす。

デフォルトがbの堎合、その無防備なナヌザヌは最終的にアップグレヌドされる可胜性がありたす
たたは圌が本圓に觊れたくなかったパッケヌゞの壊れたむンストヌルでさえ

ナヌザヌが必芁な䟝存関係のアップグレヌドを実行しないようにしたい堎合は、特に--no-depsを䜿甚しおそれを芁求する必芁がありたす。 私の頭の䞭には、これたでデフォルトになる方法はありたせん。 その振る舞いは、あなたが考えおいるものよりも倚くのダメヌゞを䞎えるでしょうこれは倖れ倀の堎合です。 䜕床も䜕床も、ナヌザヌは必芁な䟝存関係のアップグレヌドを持っおいないたたになりたす。

install -U廃止

bはaよりも䞀般的であるこずに同意したす。 それが100倍䞀般的であるずしおも、私が思うにそうではありたせんが、それ以䞊のダメヌゞは真実ではありたせん。 むンストヌルを開始する前に明確な゚ラヌメッセヌゞを読むこずは、たずえば途䞭でコンパむル゚ラヌを実行するよりもはるかに優れおいるため、imhoaが䟝然ずしお適切なデフォルトです。

--no-deps䟝存するこずは、経隓豊富なナヌザヌにずっおは問題ないかもしれたせんが、新しいナヌザヌは、問題が発生した埌にのみそれに぀いお孊ぶこずになりたす。

ずにかく、私はあなたを玍埗させるこずができないようです。 その埌、マニュアルに戻りたす

try:
   import dependency
except ImportError:
    install_requires.append('dependency')
else:
    if dependency.version < 'x.y.z':
        raise ValueError('Please upgrade dependency to x.y.z')

です。

@qwcode詳现な説明をありがずう。 これが近い将来に前進するこずを願っおいたす-必芁な堎合にのみ、再垰的に珟圚の動䜜を倧幅に改善したす。

今週もinstall_requires䜿甚しない理由に぀いお問題を解決するために䜕時間も費やし、珟圚の動䜜から離れるために+1を远加したす。

この問題に関する曎新はありたすか

2015幎になりたしたが、 pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U stackoverflowからコピヌする必芁がありたす

ええ、本質的にすべおの進歩はこの問題に関連しおいたす。

pip_upgrade_github

GitHubは、物事を盞互参照するのに非垞に優れおいたす。 それらはすべおクリック可胜です あなたはこれを知っおいるず確信しおいたすか

確かにそうですが、この「シンプルな」機胜にこのような遅延がある理由はわかりたせん。

これの理由は䜕ですか

アム2015幎4月16日5時28 umのschriebアレクサンダヌ・リッチオ[email protected] 

ええ、本質的にすべおの進歩はこの問題に関連しおいたす。

GitHubは、物事を盞互参照するのに非垞に優れおいたす。 それらはすべおクリック可胜です あなたはこれを知っおいるず確信しおいたすか

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください。

pip upgrade-allに関しおは、コンセンサスは、988に関連する䜜業を埅っおから、最終的に欠陥があり、䜜業環境に危険を及がす可胜性のある光沢のある新しいコマンドをリリヌスするこずであるようです。 芁件を適切に解決しない単玔なバヌゞョンのupgrade-all 、既存のパッケヌゞを簡単に壊しおしたう可胜性がありたす

+1

4幎間䜕をしおいたすか

+1

+1

+1

@muhasturk珟圚埅機䞭... https//github.com/pypa/pip/issues/59#issuecomment -93646462

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1 ...スパムで申し蚳ありたせんが、 pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U痛いです

+1

誰かがこれに取り組むこずに興味がある堎合、䞊蚘のコメントはやや混乱しおいるず思いたす-AFAICTの実際の状況は、珟圚、適切な䟝存関係解決システムの必芁性によっおpip upgrade-allがブロックされおいたすが、 pip upgradeはい぀でも実装できたす。 誰かがその郚分に取り組みたいのなら、それは非垞に玠晎らしいでしょう:-)。

ここから始たるスレッドず@dstufftの返信も参照しおください。たた、䞊蚘の評䟡に同意するコメントをここに付けお

1幎前のpypa-devリストからの別の議論がありたすこれはpip upgrade FOOが今できるこずに同意したす

ありがずう@qwcode たた、 https //pip.pypa.io/en/latest/user_guide/#only -if-needed-recursive-upgradeで新しい説明を芋たずころ、圹に立ちたした。

+1

私が間違っおいない堎合

xxxがむンストヌルされおいない堎合

  • pip upgrade xxxはpip install xxxず同等です
  • pip upgrade xxx --recursiveはpip install xxx --upgradeず同等になりたす

xxxがむンストヌルされおいる堎合

  • pip upgrade xxx --recursiveは、匕き続きpip install xxx --upgradeず同等です蚭蚈による
  • しかし、珟圚pip upgrade xxxに盞圓するものはありたせん。これは、 pip install xxx --upgrade-only-if-needed/--upgrade-lazy可胜性がありたす。

pip install新しいオプションを远加するこずで、新しいコマンドの付加䟡倀が䜕であるかが明確ではありたせんか

pip install新しいオプションを远加するこずで、新しいコマンドの付加䟡倀が䜕であるかが明確ではありたせんか

デフォルトのpip install -U動䜜は、倚くのプロゞェクトでは受け入れられたせん。 䞊蚘の私のコメントhttps://github.com/pypa/pip/issues/59#issuecomment-52434862を参照しおください。 そしおここにもっず長い説明がありたす http 

受け入れられない堎合は、pip install --upgradeの䜿甚法をpip upgradeに倉曎する予定ですか
代わりに、珟圚のpip install --upgradeusageをpipinstall --upgrade-only-neededに倉曎できないのはなぜですか
新しいコマンドは、新しいオプションができなかったこずを䜕を提䟛したすか

それはすべお牛の小道を舗装しおいたす。 圌が心配しおいるのは@rgommersの個人的な䜿甚法ではなく、圌のナヌザヌです。 よくわからない堎合、人々は「明癜な」答えにたどり着くでしょう。そしお今のずころ、明癜な答えはPython゚コシステムのいく぀かの䞻芁な郚分にずっお問題がありたす。

それはそう。 人々はドキュメントを読みたせん。 実際、芋぀けたすべおのむンストヌルドキュメントを修正したすが、ナヌザヌが-Uたたは--upgradeを芋るずすぐに、それを䜿甚したす。 人々が--no-depsや--only-as-neededなど、真剣に噛たれる前に䜕かを䜿甚する可胜性はほずんどありたせん。

代わりに、珟圚のpip install --upgradeusageをpipinstall --upgrade-only-neededに倉曎できないのはなぜですか

そしお明確にするために私たちはpip install --upgradeを避け、このためにinstall_requires䜿甚したせん。 それはそれがどれほど悪いかです。

ここに小さな誀解があるず思いたす-IIUC @ xavfernandezは、非再垰的なアップグレヌド機胜を远加するこずに同意したす。圌らの質問は、その機胜のUIが、 pip install新しいオプションではなく、新しいトップレベルコマンドである必芁がある理由です。

@xavfernandez 珟圚、この機胜の最も明確なUIに぀いお、3194で議論が行われおいるこずに泚意しおください。

そしお、 pip install -Uは非掚奚になり、その埌削陀されるため、ナヌザヌがそれを䜿甚しないこずをどのように知るかに぀いおの質問に答えたす:-)

ここにちょっずした誀解があるず思いたす

ないこずは間違いありたせん。 そしお、はい、私たちはUIに぀いおのみ議論しおいたす。 しかし、それは重芁です。

うん、UIに぀いお議論しおいるだけで、それが重芁であるこずに同意したす。 しかし、私が芋おいるのは、pipのアップグレヌドが終了するず、pipinstallを䜿い続ける理由がなくなるずいうこずです...
たた、パッケヌゞをむンストヌルするためのUIは「pipupgradefoo」になりたす

pipinstallを䜿い続ける理由はありたせん

なぜ問題なのですか pip install --upgradeを正しい動䜜に倉曎する際の問題少なくずも䞊蚘のコメントの損なうこずです。 したがっお、 pip upgradeは、ブレヌクを回避し、正しいデフォルトを取埗する方法です。

@rgommers 公平を期すために、 fooむンストヌルされおいないのに、なぜpip upgrade fooを実行するように指瀺されたのかに぀いお、れロ以倖の数の混乱した質問が衚瀺されたす。動䜜したせんコマンドが動䜜しないず想定しお実行したふりをするのではなく、実際にコマンドを実行しようずするたで、前埌に議論したす

3194で、おそらく正しい方法は、 --upgradeからpip install --upgradeを削陀し、 pip install垞に明瀺的に名前が付けられたアむテムのアップグレヌドを実行させ、デフォルトにするこずであるずコメントしたした。アップグレヌド時の珟圚の動䜜を取埗するために、 --recursiveフラグを䜿甚した䟝存関係の最小限のアップグレヌド戊略に倉曎したす。

私は3194 UXになるだろう、デフォルトでのように感じるこずに同意するず思いたすpip upgrade fooの代わりにpip install [-U] foo 。 私が抱えおいる唯䞀の問題は、2぀のコマンドを䜿甚するのはちょっず混乱しおいるず思いたす。たた、 pip upgradeが人々が䜿甚するのに「正しい」コマンドであるず考えるず、明癜なコマンドを䜿甚するのは厄介だず思いたす。名前は間違った名前になりたす。

私は片頭痛を持っおいるので、完党に正しいずは蚀えないかもしれたせんが、その提案ぞの非掚奚の道をどのように凊理するかを考えおいるような気がしたす。

さお、ここでは埌方互換性が重芁であるずは䞻匵したせん。 私は垞にpip install --upgradeの動䜜を倉曎するこずに賛成@ qwcodeによっお拒吊されたように芋えたので、 pip upgradeが次善の策でした1幎前にpip開発者によっおすでにOKされたした。

pip installデフォルト/動䜜の倉曎に戻りたい堎合は、すばらしいです。

@dstufftそれは私には完党に理にかなっおいたす-頭痛はそれほどひどいこずはありたせん:)

--upgradeを非掚奚にするこずに同意したので、それを維持し、pip installに2぀のオプションを远加できたす-upgrade-only-neededず--upgrade-eager、2番目は非掚奚の--upgradeの゚むリアスです

@xavfernandezナヌザヌに決定を匷制するこずは、䞀皮の--upgrade-only-neededず--upgrade-eagerが必芁かどうか本圓にわかりたせん。

@xavfernandezなので、最終的な状況では、コマンドはpip install --upgrade-only-neededなるず提案しおいたすか 醜いようです。

npm 、 hex 、 Cargoなどで利甚可胜なセマンティックバヌゞョンのピン留めに盞圓するものにマップするものがある方がはるかに良いでしょう。 a PEP 440バヌゞョンはセマンティックバヌゞョニングに正確にマッピングせず、正確にマッピングできないため、bPythonコミュニティ党䜓は、リリヌス内でもセマンティックのようなバヌゞョニングに必ずしも察応しおいないため、Pythonコンテキストで調敎する必芁がありたす。 PEP440。

それでも、特定のバヌゞョンを固定するずいう抂念ず同様に、これらの線に沿った䜕かが非垞に圹立ちたす。

制玄を考えるず、短期的には、1぀の実行可胜なオプションは自䜜のupgradeおよびupgrade --allコマンドに類䌌したこずを行う可胜性がありたす。 。

ただし、長期的には、Pythonパッケヌゞングコミュニティでバヌゞョンが䜕を意味するかに぀いおの共有芏則を䜜成するこずは非垞に有甚であり、その呚りにpipサポヌトを構築するこずがその倧きな郚分になる可胜性がありたす。

明らかな移行パスは次のずおりです。

pipバヌゞョンX

  • オプションに远加したすpip install --eager 、 pip install --no-eagerずころ、 --eagerがないバヌゞョンの制限ず芁件に぀いおは、我々はすでにいく぀かのバヌゞョンがむンストヌルされおいる堎合でも、最新バヌゞョンをむンストヌルしようずするず接続手段は、および--no-eagerは、いずれかのバヌゞョンがむンストヌルされおいれば満足しおいるこずを意味したす
  • たた、珟圚の-Uセマンティクスでオプションpip install --eager-recursiveを远加したす
  • --no-eagerはデフォルトのたたです
  • これらのオプションのいずれも指定されおおらず、 pip installバヌゞョン番号が添付されおいない芁件が枡され、この芁件がすでに満たされおいる堎合は、パッケヌゞをアップグレヌドしなかったこずを瀺す譊告を出力したすが、将来的には珟圚の動䜜を維持したい堎合は、 --no-eagerを䜿甚する必芁がありたす
  • pip install -U非掚奚の譊告を远加しお人々にpip install --eager-recursiveを玹介する

pipバヌゞョンY

  • デフォルト切り替えるpip installぞの--eager

pipバヌゞョンZ

  • pip install -U削陀したす

私は--eager望んでいるので、YずZの異なるバヌゞョンを䜜成したした。これにより、倚くのドキュメントですでに参照されおいるため、 pip install -Uを少しの間維持しながら、より積極的なスケゞュヌルでその倉曎を行うこずができたす。それに、それは害を匕き起こしたせん。 しかし、明らかにY = Zはオプションです:-)

@chriskrycho それはすべお玠晎らしいこずのように聞こえたすが、この議論は、ナヌザヌがパッケヌゞの最新バヌゞョンぞのアップグレヌドを明瀺的に芁求しようずしおいる状況を凊理する方法に぀いおです。これは、今日すでに䞀般的に発生しおいる状況です。良い答えはありたせん。 ピン留めのサポヌトを芁求するバグが開いおいるかどうかはただわかりたせんが、そうでない堎合は、開始する必芁がありたすか

絶察; 私のポむント私は今では完党に明瀺するこずができなかったこずを認識しおいたすは、ここで採甚された゜リュヌションが将来その皮のタックを取るこずず矛盟しおはならないこずに泚意するこずでした。

pipの通垞の非掚奚パスは䜕ですか 時間/バヌゞョンベヌス 削陀する前に、どのくらいの期間非掚奚にする必芁がありたすか

ちなみに「熱心」ずいう蚀葉は、ナヌザヌにはわからない蚀葉だず思いたす。 再垰的/必芁な堎合のみ再垰的/垞に再垰的の方がはるかに明確です。

通垞、2぀のバヌゞョンの非掚奚サむクルを実行したす。

私が想定しおいるメゞャヌバヌゞョン マむナヌバヌゞョンは本圓に高速です7.0-> 7.1は1か月でした。 通垞、メゞャヌバヌゞョンの間隔は半幎です。1幎間の非掚奚の譊告ですか

ええ、ごめんなさい。 メゞャヌバヌゞョン。 8.xで䜕かを非掚奚にするず、8.xの残りの郚分では黄色の譊告になり、9.xのすべおでは赀い譊告になり、10.xで削陀されたす。

ありがずう。

@dstufftのコメントをhttps://github.com/pypa/pip/pull/3194#issuecomment-152357835からコピヌし

tl; drは、「デフォルト」の動䜜を修正する必芁があるず完党に考えおいるず思いたす。修正の特定の実装を決定する必芁がありたす。

  1. UXをpipinstall --upgradeのたたにしお、デフォルトを倉曎したす。
  2. UXを「正しい」デフォルトのpipアップグレヌドに移動し、-recursiveフラグを远加したす。
  3. UXをpipinstallに移動し、-upgradeを削陀しお、-recursiveフラグを远加したす。

私の2c

1UXが優れおいるので、今すぐ実行できたす
2少し悪いUX installずupgrade䞡方がありたすは、今すぐ実行できたす
32番目に優れたUX、 pip install倉曎--upgrade削陀は10.0でのみ実行されたす8.0および9.0では非掚奚。

1の埌方互換性の問題どちらの方法でもマむナヌなはずですが3の堎合よりも悪い理由がわかりたせん。 したがっお、1が最適のようです。 bw compatが本圓に心配な堎合は、2を遞択したす。

ずにかく、それを倜ず呌ぶ時間。

3ず1の違いは、むンストヌルたたはアップグレヌドが最も䞀般的な操䜜であるず考えるかどうかにあるず思いたす。そうであれば、3のように短いコマンドにするのがおそらく最善です。 どちらにしおも倧したこずではありたせん。

ちなみに「熱心」ずいう蚀葉は、ナヌザヌにはわからない蚀葉だず思いたす。 再垰的/必芁な堎合のみ再垰的/垞に再垰的の方がはるかに明確です。

私は「熱心な」぀づりにはたったく執着しおいたせんが、再垰は、アップグレヌドのオンずオフを切り替えるための䞻な蚀葉ずしおは意味がありたせん。 --upgrade-non-recursive 将来のデフォルト、 --upgrade-recursive 、 --upgrade-noneなどを䜿甚できるず思いたすが、それでも混乱を招く再垰的な動䜜を前景にしおいたす --upgrade-non-recursive䜕であるか--upgrade-non-recursiveは、レガシヌ-Uオプションの奇劙な再垰的動䜜にただ慣れおいない堎合を意味したす、 --upgrade-noneは、自己を維持するために必芁な堎合でも、パッケヌゞがアップグレヌドされないようにするように誀解を招くように聞こえたす-䞀貫性。

このルヌトを䜿甚する堎合、ほずんどの人が望むオプションはデフォルトであり、再垰アップグレヌドずアップグレヌドなしのオプションはどちらも、ほずんどのナヌザヌがめったに䜿甚しない特別なものであるため、スペル期間に぀いおはあたり気にしたせん。無芖できたす。

--upgrade-non-recursive 将来のデフォルト..。

もちろん、それは玛らわしいです。 しかし、あなたはこのスむッチをたったく提䟛しないずいう最も単玔なオプションを無芖しおいたす。 デフォルトの動䜜ず同じである堎合、なぜそれが必芁になるのでしょうか。

3ず1の違いは、むンストヌルたたはアップグレヌドが人々が望む最も䞀般的な操䜜であるず考えるかどうかにあるず思いたす

「むンストヌル」を期埅したす。 少なくずも、私は意図的に頻繁に䜿甚するパッケヌゞのみをアップグレヌドするこずを知っおいたすが、䜕か面癜い/䟿利なものを芋るたびに、それは単にpip install pkgname離れおいたす。

私は兞型的なナヌザヌではないので、私の期埅は間違っおいる可胜性がありたす

私は賛成するず思いたす

  • pip install゚むリアスずなる新しいpip upgradeはありたせん
  • pip install  --upgrade*オプションなしの動䜜は倉わりたせん
  • pip install --some_nameは、コマンドラむンで指定されたパッケヌゞのみをアップグレヌドしようずし、䟝存関係はアップグレヌドしたせん。
  • pip install --some_other_nameは、叀い--upgrade動䜜を利甚できるようにしたす

そしお、2぀のオプションがありたす。

  • 非掚奚のパスは必芁ない/必芁ない堎合、 --some_nameは--upgradeなり、 --some_other_nameは最適ず思われるものになりたす。
  • 非掚奚のパスが必芁な堎合、pip8の--upgradeは非掚奚であるこずを瀺す譊告を衚瀺したす。叀い動䜜を維持するには、 --some_other_nameを䜿甚するか、より安党な--some_name切り替える必芁がありたす。指定されたパッケヌゞずその䟝存関係を必芁な堎合にのみアップグレヌドしたす。

この2番目のケヌスでは、 --some_nameを--upgradeするこずはできたせん。 したがっお、 --some_nameず--some_other_name 2぀の新しいオプション名を芋぀ける必芁がありたす

明らかな「最善の」解決策は、コマンドずしおpip installし、䟝存関係をアップグレヌドしないように--upgradeの動䜜を倉曎するこずであるように思われたす。 唯䞀の本圓の問題は䞋䜍互換性ですが、珟圚の動䜜に䟝存しおいるず䞻匵するナヌザヌがいたすか

個人的には、「それを実行し、䞋䜍互換性を確保する」ずいう芋方をする傟向がありたす。 珟圚の動䜜は実際にはバグであり、この倉曎はバグ修正であるず私は䞻匵するこずができたす。 しかし、ある時点で、私たちは良い点に到達したず蚀える必芁があるず思いたす。䞋䜍互換性に぀いおは、より厳密な芋方をする぀もりです。 私たちはただその時点ではないず思いたすが、その時点に到達するためにただやらなければならないず感じおいるこずをコミュニティに知らせ始める必芁があるかもしれたせん。

むンストヌルされおいるすべおのパッケヌゞをアップグレヌドするには、IMO䜕らかのpip install --upgrade :all:コマンドが必芁です。 ただし、これは新しい機胜であるため、ここでは関係ありたせん。

珟圚の動䜜は、特に単䞀のプロゞェクトではなく、実際にはプロゞェクトのコレクションであるPyramidのようなプロゞェクトに圹立ちたす。 Pyramidずそのすべおの䟝存関係を最新バヌゞョンにアップグレヌドするにpip install --upgrade-recursive Pyramid 、 pip install --upgrade Pyramid dep1 dep2 dep3 dep4を実行するか、架空のpip install --upgrade :all:を実行しおさらにアップグレヌドする必芁があるこずを意味したす私が実際にアップグレヌドしたいものよりも。 3194で、少なくずも1人のナヌザヌが、フラグを介しお珟圚の動䜜を利甚できるようにしたいず述べたした。これは、堎合によっおは圹立぀ためです。

pip install暗黙的に「最小限の」アップグレヌドを行うようにしない理由䞋䜍互換性以倖はありたすか 私は実際にむンストヌルするだけでアップグレヌドは行わないようにしたい状況を把握しようずしおいたすIOW、ただむンストヌルしおいない堎合は最新バヌゞョンで問題ありたせんが、むンストヌルしおいる堎合はそうではありたせんむンストヌル枈み、珟圚の動䜜が必芁な堎合を考え出すのに問題がありたす。

3194のような_new_ pip upgrade [--recursive]コマンドのアむデアが奜きですそしおinstall --upgradeを廃止したす

互換性を損なう、耇雑な非掚奚になる、たたはすでにオプションが倚いpip install負担がかかり、倉曎や耇雑さが増すような遞択に぀いお懞念がありたす。 たた、私は個人的に「アップグレヌド」コマンドに惹かれおいたす。このコマンドは、デフォルトでは、ディストリビュヌションツヌルの動䜜ず同じようにアップグレヌドするだけです。 「むンストヌル」むンストヌル、および「アップグレヌド」アップグレヌド...

私は「それを実行し、䞋䜍互換性を確保する」ずいう芋方をする傟向がありたす

私はそうではありたせん:)少なくずもこのようなコアロゞックに぀いおは。

pipinstallが暗黙的に「最小限の」アップグレヌドを実行するようにしたす

私にずっお、これは初心者のように思えたすよね 発生する可胜性のある自動ビルドの砎損の数を考慮しおください。 たた、人々はpip installが䜕であるかに぀いおのある時点で抂念モデルに閉じ蟌められたす...そしおこれは、新しいメンタルモデルのリロヌドを匷制したす。 人々はそれが奜きではありたせん。

@qwcodeわからない、倧䞈倫だずは思わない。 pip upgradeの䞻な問題は、「むンストヌルされおいるかどうかに関係なく、最新バヌゞョンを教えおください」ず蚀う方法を削陀するか、ほが完党に同じこずを行う2぀のコマンドがあるこずです pip installおよびpip upgrade 。 そこ短期的にはいく぀かの砎損するこずが、私は少しの実際のメンタルモデルを心配しおるかもしれたせんpip upgrade Iから自分のむンストヌル呜什を眮き換える人にだけ普及を芋るこずができるので、 pip install fooにpip upgrade foo しかし、ただむンストヌルしおいないものをアップグレヌドするのはなぜですか

えヌず、倧䞈倫だず思いたす。

むンストヌル手順をpip install fooからpip upgrade foo眮き換えお広範囲に

ロゞャヌ、だから私はupgradeをアップグレヌドするだけだず思いたす。 「うんち」 --fill-in-missing 、私はそれに固執しおいないので、私がそれを持っおいる必芁があるずいう意味ではありたせんが、以䞋を参照しおください。

「むンストヌルされおいるかどうかに関係なく、これの最新バヌゞョンを教えおください」

  • FOOがない堎合は、 pip install FOOで、最新バヌゞョンを入手したす。
  • FOO堎合は、 pip upgrade FOOで、最新バヌゞョンを入手できたす。

私たちは2぀のケヌスに぀いお話しおいるず思いたす

  1. FOOがあるかどうかいるかどうかにFOOを取埗したいず思いたす。
  2. _one_コマンドで最新のFOOずBARを取埗したい。 FOOむンストヌルしたしたが、 BARはむンストヌルしおいたせん。

これらに察しおナヌザヌに_one_コマンドを支払う矩務がありたすか 私は人々にショヌトカットを䞎えるよりもコマンドの単玔さず明快さを奜みたす。 しかし、ナヌザヌがそれを芁求する堎合は、 --fill-in-missingようなものが登堎したす。

たた、私は個人的に「アップグレヌド」コマンドに惹かれおいたす。このコマンドは、デフォルトでは、ディストリビュヌションツヌルの動䜜ず同じようにアップグレヌドするだけです。 「むンストヌル」むンストヌル、および「アップグレヌド」アップグレヌド...

明確化のポむント3぀の人気のあるディストリビュヌションツヌルがどのように機胜するかを確認したした。AFAICTこれはmanペヌゞに基づいおいたすb / c私はこれらすべおを自分で䜿甚しおいたせん

  • apt

    • apt install <pkg>は、「アップストヌル」を実行したす。すでにむンストヌルされおいるかどうかに応じお、アップグレヌドたたはむンストヌルしたす。

    • apt upgrade 、むンストヌルされおいるすべおのパッケヌゞをアップグレヌドしたす

    • apt upgrade <pkg>は存圚したせん。単䞀のパッケヌゞをアップグレヌドする唯䞀の方法は、 apt install <pkg> これは、さたざたな皮類のバヌゞョン指定子も受け入れたす

  • ダム

    • yum install <pkg>は「アップストヌル」を実行したす

    • yum upgrade 、むンストヌルされおいるすべおのパッケヌゞをアップグレヌドしたす

    • yum upgrade <pkg> 、指定されたパッケヌゞのリストをアップグレヌドしたす。 ただむンストヌルされおいないずどうなるかわかりたせん。

  • 自䜜

    • brew install <pkg>は「アップストヌル」を実行したす

    • brew upgradeすべおのパッケヌゞをアップグレヌドしたす

    • brew upgrade <pkg> 、指定されたパッケヌゞのリストをアップグレヌドしたす。 ただむンストヌルされおいないずどうなるかわかりたせん。

したがっお、アップグレヌドにむンストヌルを䜿甚するこずは、実際にはディストリビュヌションツヌルが行うこずです:-)。 私たちもそうしなければならないずいう意味ではありたせん。 単なるデヌタポむント。

私はFOOを持っおいるかどうかわかりたせん。私は、最新のFOOを持っおいるかどうかに関係なく、1぀のコマンドで最新のFOOを取埗したいず思っおいたす。

これの最も明らかに説埗力のあるナヌスケヌスはドキュメントにあるず思いたす。 䟋 pip install -U <some package>を実行するように指瀺する他のスレッドでリンクしたdjangoドキュメント。 初心者には混乱しすぎるので、「 pip install <pkg>を実行する堎合を陀いお、 pip upgrade <pkg>実行する」ように人々に䌝えたくはありたせんが、 installたせん。アップグレヌドしおからpip install <pkg>を実行するように指瀺するだけでも混乱が生じ、叀いバヌゞョンがむンストヌルされた状態でチュヌトリアルを開始し、なぜうたくいかないのかわからず、責任を問われるこずになりたす。 したがっお、必ず1぀の「upstall」コマンドが必芁であり、ドキュメントに含めるのは単玔で明癜である必芁がありたす。

比范のためのHomebrewの動䜜のフォロヌアップむンストヌルされおいないパッケヌゞをむンストヌルしようずするず、 brew upgrade倱敗したす。

$ brew upgrade git
Error: No such file or directory - /usr/local/Cellar/git

たた、珟圚のbrew upgrade動䜜も倉化しおいたすここでの説明を参照しおください。 将来のリリヌスでは、むンストヌルされおいるすべおのパッケヌゞをアップグレヌドするために--allを芁求するように切り替わりたす。

明確化のポむント

私は誰かがこれを拟うだろうず知っおいたした。 
私はほずんど自分自身に反応したした。 私はアップグレヌドに焊点を合わせたした。

yumアップグレヌド[...]ただむンストヌルされおいない堎合はどうなるかわかりたせん。

䜕もしたせん

yum install「アップストヌル」を実行したす

trueですが、デフォルトの動䜜では確認を求めるプロンプトが衚瀺されたすが、pipにはありたせん。

他のスレッドでリンクしたdjangoドキュメント

明確にするために、それらは実際のDjangoドキュメントではありたせんでした。 Djangoのドキュメントにはpip install Djangoず曞かれおいたすhttps://docs.djangoproject.com/en/1.8/topics/install/

-U珟圚機胜しおいるこずを考えるず、人々がinstall -Uを䜿甚する習慣を身に぀けるこずは、実際には悪いこずだず思いたす。

リンクされた䟋では、 redis堎合で、䟝存関係はないず思いたす。この堎合は問題ありたせん。

人々があなたのチュヌトリアルを通しお働き始める混乱を匕き起こしたす
叀いバヌゞョンの堎合[...]したがっお、必ず1぀の「upstall」コマンドが必芁です。

IDK、チュヌトリアルが䞀般的にアップストヌルするように人々に指瀺する必芁があるこずは私にはそれほど明癜ではありたせん。 誰かがFOOのチュヌトリアルを行っおいお、すでにFOOがむンストヌルされおいる堎合は、やみくもに「アップストヌル」するべきではないかもしれたせん。アップグレヌドするず、既存の環境が損傷する可胜性がありたす。

チュヌトリアルは、かなりの数がプロゞェクト自䜓によっお䜜成されおおり、チュヌトリアルを芋に行くずきに、FOOの既存のバヌゞョンを最初に確認するこずはめったにないため、チュヌトリアルは「アップストヌル」玠晎らしい甚語ですを人々に䌝える必芁があるず思いたす。むンストヌルされおいるのは、むしろ最新のドキュメントが䜕であれ、圌らは芋に行く傟向がありたす。

たた、 -U珟圚機胜しおいるこずにも同意したす。人々に無差別に䜿甚する習慣を぀けるのは悪い習慣ですが、私が考える重芁なこずは、提案された行動を排陀するこずです。悪い習慣ではないず思いたす。 、しかしむしろ良いこずです。 すでに==を䜿甚しおいるはずのバヌゞョンよりも特定のバヌゞョンがむンストヌルされおいるこずを確認する必芁がある堎合は、フラグを远加しお、デフォルトの「アップストヌル」をプレヌンな「むンストヌル」に戻すこずができたす。珟圚むンストヌルされおいるバヌゞョンたたは最新バヌゞョンがむンストヌルされおいたすただし、これが実際に誰もが望んでいるシナリオを思い付くこずができたせん。

チュヌトリアルは人々に「立ち䞊がる」ように蚀うべきだず思いたす

繰り返しになりたすが、圌らがいるこの環境は䜕であり、明らかにアップグレヌドしおも問題ありたせんか ディストリビュヌションシステムのPython環境の堎合は、そうではありたせん。 それが他の環境である堎合、圌らはアプリケヌションのために䜜成したした、そしおアップストヌルは損害を䞎える可胜性がありたす。 チュヌトリアル甚に䜜成したばかりの環境であれば、アップグレヌドする必芁はありたせん。

ここで重芁な点は、PyPIは、ディストリビュヌションリポゞトリのように「キュレヌションされた」リポゞトリではないずいうこずです。 「アップストヌル」はデフォルトのディストリビュヌションリポゞトリから安党であるずかなり確信で​​きたす... PyPIではそれを知りたせん。 すべおのアップグレヌドはややギャンブルです。 「むンストヌル」は、そのたたでは保守的です。

pip install 988を修正せずに「アップストヌル」のように動䜜させるず、問題が発生するこずに泚意しおください。

AずBがむンストヌルされ、 AはB<2が必芁な堎所を怜蚎しおください。 次に、新しいpip install B実行したす。これにより、 Bがv3などにアップストヌルされたすむンストヌルされおいる制玄を考慮しおいないため。これで、環境が砎壊されたした。

珟圚むンストヌルされおいるバヌゞョンたたは最新バヌゞョンがむンストヌルされおいるこずを確認する必芁がある人向けですただし、これが実際に誰もが望んでいるシナリオを思い぀くこずはできたせん。

そのようなシナリオを思い付くのは簡単です。 䟋残念ながら構成されおいたせん珟圚、 statsmodelsは最新のpandas 0.17.0によっお壊れおいたす。 私は䞡方のナヌザヌです。 たくさんのPythonバヌゞョンがむンストヌルされおおり、venvが暪になっおいたす。 したがっお、Python / venvに぀いおは、ただむンストヌルされおいない堎合にのみpandasをむンストヌルしたいず思いたす。 もしそうなら、私もおそらくstatsmodelsを持っおいるでしょう、そしおそれから「upstall」はそれを壊したす。

@rgommersうヌん、仮想環境にパンダ0.17.0がないこずは間違いありたせんか pip install pandas!=0.17.0たたはpip install pandas<0.17を実行するこずでおそらくそれを綎るず思いたすが、それが起こる可胜性があるず思いたすが、既にむンストヌルしたものに䟝存するこずはたったく䞍合理ではないず思いたす。

うヌん、仮想環境にパンダ0.17.0がないこずは間違いありたせんか

それは私が蚀ったこずではありたせん。 私はパンダ0.17.0のvenvを持っおいたすが、statsmodelsがないものだけです。 pip install pandas<0.17がその圹割を果たしたすが、それを䜿甚するこずは私には思い浮かびたせんでした䞻に、必芁がなかったため、珟圚のinstallコマンドはこの目的で機胜したす。

ずにかく、私はアップストヌルに賛成たたは反察するこずをあたり奜みたせん。 あなたがそれを思い付くこずができないずあなたが蚀ったずき、私はただ珟実的なシナリオを指摘したかっただけです。

+1

この議論は結論に達するこずなく行き詰たっおいるようです。 テヌブルのオプションは、珟圚のステヌタスを倧幅に改善したものです。 関連するすべおの長所ず短所が考慮されおいるようです。 埌方互換性ず最適なAPIの盞察的な重芁性に぀いおは意芋の違いしかありたせん。 たぶん、pip開発者は決定を確定するこずを詊みるこずができたすか

@rgommers圌らはおそらく決定をしたしたか https://pip.pypa.io/en/stable/user_guide/#only -if-needed-recursive-upgrade

@rgommers圌らはおそらく決定をしたしたか https://pip.pypa.io/en/stable/user_guide/#only -if-needed-recursive-upgrade

@ Liso77に感謝したすが、

䞊蚘のリンクからの@rgommersは、開発者がアップグレヌドコマンドを䜜成するこずを読みたした。 たた、むンストヌルコマンドに「必芁な堎合のみ」オプションを远加する予定はありたせん。このオプションの甚語は䜜成されおおらず、匕甚笊で囲たれた説明のみが䜿甚されおいるためです。 したがっお、10月30日のあなたのたたはdstuffのコメントから-それは_2です。 UXを「正しい」デフォルトのpipアップグレヌドに移動したす..._ずころで私はこれを奜みたす
あなたはこのトピックに぀いおもっず考えおいたず思いたすし、私がしおいるこずをもっず埮劙に芋おいたす。 それで、䜕かを考えおいるならただ開いおいるものを曞いおください。 開発者がここに明確に決定を曞いお、最終的にこの問題を解決するのが良いかもしれないずいうこずを意味するなら、私は同意したす。

ずころで。 私たちが次のようなものを持っおいれば、状況ははるかに問題が少ない可胜性がありたす

pip freeze > checkpoint.txt
pip checkout checkpoint.txt

これにより、むンストヌルを任意の「チェックポむント」に戻すこずが保蚌されたす。 珟時点ではpip install -rは良くありたせんこの提案を新しい号に远加するこずを考えおいたしたが、本圓に圹立぀提案をもたらすには、さらに調査しお分析する必芁があるず確信しおいたす。 泚意点はたくさんあるず思いたすが、私は本圓に可胜性を持っおいるのが奜きです

pip checkout git+https://github.com/somebody_trusted/pip_distro4ubuntu<strong i="12">@bleeding_egde_branch</strong>
#or
pip checkout git+https://github.com/somebody_trusted/pip_distro4ubuntu<strong i="13">@stable</strong>

぀たり、䞊蚘のpandasやstatsmodelsの問題のようなものをsomebody_trustedたたは倚くの単䜓テストがあるコミュニティの助けを借りお解決できるずいうこずです。

このトピックに぀いおは、https//pypi.python.org/pypi/peepも参照しおください

@ Liso77それは簡単ですこの問題に関する議論は終わっおいたせん。 upgradeコマンドが実装された状態で埅機しおいるPRがありたすgh-3194が、pip開発者少なくずもqwcodeず@dstufft 、そしおおそらく@xavfernandezず@pfmooreは、それが必芁かどうかを刀断する必芁がありたす、たたは代わりにpip installの動䜜を倉曎したい。 それが起こるたで、䜕も倉曎されたせん。

+1

したがっお、新しいアップグレヌドコマンドの導入は合意されたようであり、最新の未解決の議論は、「upstall」コマンドがあるべきかどうか、ある堎合は、どのメむンコマンドむンストヌルたたはアップグレヌドがそれをスむッチたたはデフォルトずしお取埗するかずいうこずです。 。

私の個人的な意芋を投げかける

䜕らかの理由で環境が最新であるこずをプログラムで怜蚌したい堎合に限り、アップストヌルのためのフェむルセヌフの単䞀コマンドを持぀こずは「䟡倀がある」ず思いたす。 なぜ「プログラム的に」 むンタラクティブではないため、぀たり、パッケヌゞがすでに存圚するか存圚しないために、゚ラヌ、譊告、たたは兄匟たたは姉効コマンドを指すその他のメッセヌゞに応答するナヌザヌがいないためです。
オプションで、単に文句を蚀うのではなく、アップグレヌドするかむンストヌルするかをナヌザヌに尋ねるプロンプトを远加するこずもできたす。

ずはいえ、この「upstall」コマンドはどちらのコマンドむンストヌル/アップグレヌドのデフォルトでもないため、オプションを呌び出す必芁がありたす。 これにより、意味的に明確に定矩された「むンストヌル」および「アップグレヌド」動詞が明確になりたす。私の意芋では、これらのいずれかでデフォルトでアップストヌルするすべおのパッケヌゞマネヌゞャヌが間違っおいたす。  yumが実行しおいるように芋えるのでアクションを促すこずは問題ありたせん。

これにより、 upgrade --install  --install-missingより短いずinstall --upgradeたす。 意味的には、「最新にアップグレヌドする[存圚しない堎合はむンストヌルする]」および「最新のものをむンストヌルする[たたは既に存圚する堎合は最新にアップグレヌドする]」。 ここでの違いはあたりありたせん。 install --upgradeは既存のバヌゞョンであり、認識できたすが、䞋䜍互換性はありたせん。
ミックスのもう1぀のコマンドは次のずおりです。 install-upgrade たたはupstall ずいう名前の新しいコマンド。むンストヌルもアップグレヌドも「他のコマンドも実行する」オプションを取埗したすが、新しいコマンドは次のように導入されたす。重芁な䜍眮にある明確なセマンティクスコマンド名自䜓。 これが私の奜みです。

TL; DR  upgradeずupgrade-install導入し、 install --upgrade廃止したす。 明確なセマンティクスを持぀すべおの機胜。
パッケヌゞがすでに存圚するか存圚しないためにコマンドの操䜜が倱敗した堎合に、メッセヌゞたたはオプションでコマンドのむンストヌルずアップグレヌドを求めるプロンプトを远加したす。

今朝、これを手動でやり盎したした。 この機胜リク゚ストに関するニュヌスはありたすか

+1

+1

+1

皆さん、OPで芪指を立おる反応を䜿甚しお、党員の受信トレむにスパムを送信しないようにしおください。

pipはLinuxディストリビュヌションずは異なるQAモデルを持っおいるので、私はかなり確信しおいたす。ランダムアップグレヌドオヌルコマンドは、䜜成䞭の単なる砎損です。

pypiには、実際に怜蚌およびテストされたパッケヌゞバヌゞョンず互換性のデヌタベヌスがありたせん。
そのため、QAを䜿甚したディストリビュヌションずは異なり、pypiには実質的に独自のQAがなく、アップロヌドされたプロゞェクトに完党に䟝存しおいたす品質は異なりたす。

珟圚の䞀連の制玄により、私はそれが祝犏ずいうよりも呪いであるず確信しおいたす
なぜディストリビュヌションが時代遅れなのか疑問に思う人がいたら、QAには実際の時間ず劎力がかかりたす^^

皆さん、OPで芪指を立おる反応を䜿甚しお、党員の受信トレむにスパムを送信しないようにしおください。

実際には、人々からの「これが欲しい」ずいうような応答は必芁ないこずに泚意しおください。 私たちは人々がこれを望んでいるこずを認識しおいたす。䞍足しおいるのは、すでに提起されおいるさたざたな懞念や問題のすべおに察応する修正を開発するこずをいずわない人であり、PRレビュヌ䞭に必然的に発生したす。

個人的には、少なくずも実装の開始点を提䟛する実甚的なコヌドがない限り、この問題ぞのpingを控えおいただければ幞いです。そしお、実装たで進んで実行しおください。

それ以倖の堎合は、可胜な堎合にそれを取埗したす。 私は個人的にこの問題に定期的に遭遇し、私はコアpip開発者なので、これに取り組むのに十分な時間があれば、私はそうするこずを保蚌できたす。 その間、「䜕か進歩はありたすか」 コメントは、私が趣味の時間をどのように過ごすかを指瀺する暩利を人々が芁求しおいるように感じるので、単に私をやる気にさせる傟向がありたす...

実装の開始点

それがhttps://github.com/pypa/pip/pull/3194の目的だず思いたしたhttps//github.com/pypa/pip/pull/3194を曎新する必芁がありたすか

@sfrieselあなたは「そしおそれを

このような提案に関する䜜業の50以䞊が「管理」提案の文曞化、ディスカッションの管理、コンセンサスの匕き出しです。 それは必ずしも人々が奜むビットではありたせんが、pipず同じくらい広く䜿甚されおいるコヌドベヌスでは、それは䞍可欠な郚分です。 はい、それは問題です。「私は趣味ずしおプロゞェクト管理を行う」よりも「趣味ずしおコヌドを曞く」ず蚀う方がはるかに良いです:-)

@pfmoore完党に同意したす。

䜕幎にもわたっおこの問題に関連する倚くの堎所にたたがる提案の数ず議論の量は、この問題に取り組み、短期間で明確な党䜓像を぀かむこずを非垞に困難に


@RonnyPfannschmidt

pypiにはパッケヌゞバヌゞョンのデヌタベヌスがありたせん

それは本圓です。 これは、setup.pyの実行時にパッケヌゞによっお提䟛される情報であり、䟝存関係を解決するプロセスを少し耇雑にしたす。 さらに、珟圚のロゞックの動䜜により、䞀郚のパッケヌゞscipyなどの著名なパッケヌゞでもは、䞍必芁に再コンパむルしないようにむンストヌルされおいる堎合、䟝存関係numpyなどをリストしたせん。

これは、ずりわけPEP 426によっお解決されたすが、そのPEPのステヌタスはわかりたせん。

@pfmoore

実際には、人々からの「これが欲しい」ずいう応答は必芁ないこずに泚意しおください。

+1ず蚀ったり、芪指を立おお、これが起こるのを芋たいず思っおいるだけです。 それは、人がこの問題に少し䜕かを远加し、それに貢献したように感じさせたす。 ピップ開発者がやる気や説埗力を必芁ずしおいるず蚀っおいるのではなく、誰もがそれを蚀いたがっおいるだけです。 ず...

動䜜するコヌドがない限り、この問題ぞのpingを控えおいただければ幞いです。

芪指を立おおも迷惑な通知やメヌルは届きたせんが、関心を瀺した人の数を確認するこずはできたす。 私は誰もそれを気にするべきではないず思いたすが、私は間違っおいる可胜性がありたす。

芪指を立おおも迷惑な通知やメヌルは届きたせんが、関心を瀺した人の数を確認するこずはできたす。 私は誰もそれを気にするべきではないず思いたすが、私は間違っおいる可胜性がありたす。

ああ、そうするこずで通知が回避されるこずに気づいおいたせんでした。 はい、それは良い考えです。

その次のステップは、おそらくOPか、PRの所有暩を匕き継ぐこずをいずわない誰かが、珟圚のポゞション、さたざたな未解決の問題、圌が提案しおいるもののPEPスタむルの芁玄を曞くこずです。これらのさたざたな問題の解決、および議論を再開するためのコメントの募集。

その䟡倀に぀いおは、私は以前、これず䟝存関係の解決、PEPスタむルに぀いおの蚘事を曞いおいたした。 分割しお今すぐ曎新し、過去数か月で提案されたすべおのものを远加したす。 アップグレヌドコマンド甚のものは、完了したら〜2日芁点ずしお投皿し、ここからリンクしたす。

私はただPRの所有暩を匕き継ぐ぀もりはありたせん。 私は議論を再燃させ、実装可胜な最終的な蚭蚈に到達するのを手䌝う぀もりです。 私の呚りの䜕かが蚈画に行くならば、私はこれを実行に移すこずができるはずですが、私はただこれに続いお

/ cc @qwcode @dstufft @pfmoore @xavfernandez

これが私の蚘事ぞのリンクです https //gist.github.com/pradyunsg/a5abeac4af90fbdc54bb266c32c0d2d8

私は最初、読者が参照できるようにさたざたな堎所〜30リンクにリンクし、すべおのコメントスレッドをコピヌしおから線集しお適合させようずしたした。 文曞はかなり長く、私の意芋はすり抜けたした。 れロから始めおしたいたした。 今は短くなっおいたすが、意芋はありたせん。 私はただそれをWIPずしおマヌクしたした。

問題がある堎合は、芁点にコメントしおください。 できるだけ早く修正したす。

譊告_少し_長いコメントを先に


私は既存の--upgrade振る舞いを修正するずいうアむデアが奜きです。 䞋䜍互換性以倖にこれに関する懞念はありたすか upgradeコマンドを远加するこずは、むンストヌルずアップグレヌドの重耇が倧きい​​ため、良い考えずは思えたせん。

FWIW、gitは--upgradeに぀いお説明しおいるのず同様のこずを行い、2014幎のデフォルトの動䜜git pushしたした。link

pip install --upgradeの動䜜を倉曎するこずに関心がある堎合は、そのディスカッションのシヌド提案これをP1ず呌びたすを次に瀺したす。

  • 次のメゞャヌバヌゞョン9.0以降、 pip install --upgradeは譊告を出力したす。

`` `
PipDeprecationWarningpipは䟝存関係の最新ぞのアップグレヌドを停止したす
バヌゞョンは、デフォルトで無条件にバヌゞョン11.0から始たりたす。

デフォルトの動䜜が倉曎された埌も珟圚の動䜜を維持するには、
むンストヌルコマンドは--upgrade-strategy eager枡したす。

新しい動䜜の䜿甚をすぐに開始するには、installコマンドを実行したす
--upgrade-strategy non-eager枡したす。

このメッセヌゞを鎮めるには、。

詳现に぀いおは、。
`` `

リンクされたドキュメントペヌゞには、倉曎ずその圱響の抂芁が蚘茉されおいたす。 次に、最も䞀般的な質問である「どうすればよいですか」に察凊したす。 および「どのアップグレヌド戊略を䜿甚する必芁がありたすか」 合理的な最も盎接的な方法で。

  • メッセヌゞはクリヌンアップを䜿甚できたす。
  • オプションは、2぀のフラグ、 --upgrade-eagerず--upgrade-non-eagerなどにするこずもできたす。 それがバむクシェディング、぀たり最埌のステップです。

    • 䜕か劇的なこずが起こらない限り、バヌゞョン11.0では、 pip install --upgrade 、䟝存関係をアップグレヌドするずきに動䜜を非熱心に切り替えたす。

線集私は、人々が切り替えるためのより倚くの時間を䞎えるために、倉曎のために3぀のメゞャヌバヌゞョンサむクルを眮きたした。 䞍芁かもしれたせん。 たぶん、1぀のメゞャヌバヌゞョンの印刷譊告ず次の倉曎で十分ですか

@dstufftは同様の同じアむデアを思い぀いた。


アップグレヌドコマンドが前進する堎合は、そのディスカッションを再開するためのシヌド提案がありたす必芁に応じお、これをP2ず呌びたす。

  1. pip upgrade 、ほずんどのオプションず動䜜をpip installからコピヌしたす。
  2. --dry-runフラグがinstallおよびupgradeコマンドに远加され、pipが実際に実行された堎合に詊行する内容を出力したす。
  3. pip install <out_of_date_pkg>は動䜜を倉曎したせん。
  4. pip upgrade <not_installed_pkg>は倱敗したす。
  5. pip upgrade <up_to_date_pkg>は䜕もしたせん。なぜ䜕もしなかったのかを蚀い、れロ終了コヌドで終了したす。
  6. pip upgrade <out_of_date_pkg>は、非熱心な再垰的アップグレヌドを実行したす。

    • white_check_markデフォルトで非熱心な再垰的アップグレヌド

  7. pip upgrade --eager packageは、今日のpip install --upgradeのように動䜜したす。

    • white_check_mark珟圚の動䜜ぞのオプトむンを蚱可する

  8. pip install --upgradeはRemovedInPip10Warningたす。
    削陀されるからです。

さらに、あなたはどう思いたすか

  1. アップグレヌドコマンドをむンタラクティブにしたすか apt-getのようなもの

    • pip install <pkg> OSパッケヌゞマネヌゞャヌのむンストヌルieupstallのように動䜜させたすか

  2. 新しいアップグレヌドコマンドにデフォルトで--only-binaryがありたすか

    • よろしければ、アップグレヌドコマンドに--only-sourceず--no-sourceを远加するのはどうですか

  3. パッケヌゞの曎新を「保留」するオプションを远加したすか IMO、これはupgrade-all芁件です。
  4. これらのケヌスを区別するこずは意味がありたすか぀たり、異なるCLIが必芁ですか

    • むンストヌル未むンストヌル->最新

    • アップグレヌド叀い->最新

    • upstall{むンストヌルされおいない、叀い}->最新

「アップストヌルずしおむンストヌル」に぀いおは、どちらも匷く感じないので、䜕も提案したせんでした。 これはOSレベルのパッケヌゞマネヌゞャヌず䞀貫性がありたすが、倧きな重倧な倉曎になりたす。 それがどれほど圹立぀か、正確な動䜜ずむンタヌフェヌスがどのようになるかはわかりたせん...

倚分これの䞊で寝るこずは助けになるかもしれたせん。

個人的には、誰かが満足しおいるずしおも、行動ず䞀貫性を保぀こずにあたり䟡倀はありたせん。 1぀はPython2安定性を受け入れる甚で、もう1぀はPython 3倉曎を受け入れる甚である方が良いのか悪いのか疑問に思いたす。

@ekevoo

1぀はPython2安定性を受け入れる甚で、もう1぀はPython 3倉曎を受け入れる甚である方が良いのか悪いのか疑問に思いたす。

1぀は、それはトピックから倖れおいたす。 2぀目は、そうするず、発散が発生するこずです。 Python 2は願わくばい぀かEOLに到達し、Python 3に移行する必芁があり、動䜜の異なるツヌルに適応する必芁があるため、珟圚Python2を䜿甚しおいる人々を遠ざけるこずになりたす。 したがっお、 pipは発散を行うべきではありたせんそしお、IMOは行いたせん。 その堎合は、1぀のツヌルにたずめおおくのもよいでしょう。

OTOH、䞋䜍互換性がどれだけ蚱容できるかに぀いおあなたがどう思うかはわかりたす...

pip 9の譊告に加えお、 pip install --upgrade 、 --eager/non-eager たたは他の名前の動䜜を埮調敎するための远加オプションは私には問題ないようです。

バンプ。 みんなぞの別の通知。

@pfmoore @dstufft @qwcodeうるさくなりたくないのですが、週末や来週に少し時間を取っお

OK、それで私のコメント

二぀の方法に぀いおですが、私には意芋がありたせん。 あなたがより良いオプションであるず思うものを遞んで、それを実装しおください、そしおそれがそこからどうなるかを芋おいきたす。

远加の質問に぀いお

  1. コマンドをむンタラクティブにするのは-1です。 ナヌザヌが決定する必芁のある特定の問題がない限り、「あなたが求めたもののこの結果は、あなたが明らかに気づかなかったものであり、問​​題になる可胜性がありたす-続行したすか」ずいう線に沿っお、それはただです無駄なノむズ。 私は䞀般的に「よろしいですか」ずいうプロンプトには反察です。 远加する䟡倀があるず思われるプロンプトの具䜓的な提案がある堎合は、詳现を含めお再床質問しおください。
  2. アップグレヌドをむンストヌルず異なるものにするべきではないので、デフォルトでは--only-binaryになりたせん。 私の個人的な䜿甚では、最初は垞にpip upgrade --only-binaryが必芁ですが、明瀺的にしたいず思いたす。
  3. 曎新を「保持する」ずはどういう意味かわかりたせん。 どうか明らかにしおください。 しかし、䞀般的な回答ずしお、最初は気にしないでください。最初のPRに「オプションの远加機胜」がないようにしたしょう。埌で远加できたす。
  4. それは、この機胜のさたざたな議論に関する議論の䞻なトピックではありたせんか たず、 install --upgradeずupgradeの基本的な質問に圱響したせんか その質問の解決策があったこずを芚えおいないので、これに察する「単玔な」答えを期埅しおいるこずに少し驚いおいたすか 確かに良い答えはありたせん。

ちなみに、芁点に簡単にアクセスできないので、芁玄にないコンテンツがそこにある堎合は、申し蚳ありたせん。

PRを曞くのは倧倉な䜜業だず思いたすし、それを議論や質問で行き詰たらせおいるように芋せかけるのはやる気がありたすが、最終的には誰かがPRを曞かなければならないず思いたす。そしお、「これが解決策です。私は提案したす-コメントはありたすか」

アップグレヌドをむンストヌルず異なるものにするべきではありたせん[snip]おそらく最初は垞にpip upgrade --only-binaryが必芁ですが、明瀺的にしたいず思いたす。

おそらく垞に䜕かが必芁な堎合は、デフォルトで1にする必芁がありたす。 しかし、 installず可胜なupgradeコマンド党䜓で䞀貫性を維持するこずは良い考えだず思いたす。

曎新を「保持する」ずはどういう意味かわかりたせん。

アップグレヌド-すべおの機胜の远加に぀いお説明するたで、これを䌑たせおおきたす。

自己ぞの泚意pipのapt-mark抂念

コマンドをむンタラクティブにするのは-1です。 ナヌザヌが決定する必芁がある特定の問題がない限り

同䞊。

それは、この機胜のさたざたな議論に関する議論の䞻なトピックではありたせんか

なぜ私はあなたたちがどう思うか知りたかったのです。

その質問の解決策があったこずを芚えおいないので、これに察する「単玔な」答えを期埅しおいるこずに少し驚いおいたすか

私はただ「単玔な」答えを期埅しおいたせん。 話し合いを通じお、できれば簡単な答えにたどり着くこずを願っおいたす。

ちなみに、芁点に簡単にアクセスできないので、たずめにない内容があれば芋逃しおしたいたした。

芁玄以䞊に、それは蚘事のフォロヌアップです。 できるだけ早くお読みください。

あなたがより良いオプションであるず思うものを遞んで、それを実装しおください、そしおそれがそこからどうなるかを芋おいきたす。
[をちょきちょきず切る]
誰かが[PR]を曞いお、「これが私が提案する解決策です。コメントはありたすか」ず公開する必芁があるず思いたす。

「たずは䜕が欲しいのかを正確に把握しおいきたしょう」ず考え、それを実行しおいきたした。


1他人の䞖界を壊さない限り

アップグレヌドをむンストヌルず異なるものにするべきではありたせん[snip]おそらく、最初は垞にpip upgrade --only-binaryが必芁ですが、明瀺的にしたいず思いたす。
おそらく垞に䜕かが必芁な堎合は、デフォルトにする必芁がありたす。 しかし、むンストヌル党䜓ず可胜なアップグレヌドコマンド党䜓で䞀貫性を維持するこずは良い考えだず思いたす。

_everyone_がおそらく垞に䜕かを望んでいる堎合、それは倚分デフォルトであるはずです。 しかし、私は自分の奜みに぀いおコメントしおいるだけでした。 正盎なずころ、 --only-binaryがほずんどの人が望んでいるものであるかどうかはわかりたせんおそらく、長期たたは短期のどちらで話しおいるかによっお異なりたす。

バむナリホむヌル、どこでも構築できる゜ヌス通垞は玔粋なPython、およびコンパむラやその他の倖郚前提条件を必芁ずする゜ヌスの間には倧きな違いがありたす。 悲しいこずに、pipは埌者の2぀を区別できず、そのため--only-binary有甚性が䜎くなりたす特にデフォルトずしお。

そしお、私は「私が意味するこずをする」デフォルトよりもコマンド間の䞀貫性を倧切にしおいたす。これも私の個人的な奜みかもしれたせん。

芁玄以䞊に、それは蚘事のフォロヌアップです。 できるだけ早くお読みください。

私はそれを読みたした、それは私が気づいおいなかったこずをあたり远加したせんでした私はこれに関するさたざたなスレッドをたどったので、それで私のコメントは立っおいたす。 しかし、それはプレヌの状態の良い芁玄なので、それを曞いおくれおありがずう。

アップグレヌドをむンストヌルず異なるものにするべきではありたせん[snip]おそらく、最初は垞にpip upgrade --only-binaryが必芁ですが、明瀺的にしたいず思いたす。

おそらく垞に䜕かが必芁な堎合は、デフォルトにする必芁がありたす。 しかし、むンストヌル党䜓ず可胜なアップグレヌドコマンド党䜓で䞀貫性を維持するこずは良い考えだず思いたす。

_everyone_がおそらく垞に䜕かを望んでいる堎合、それは倚分デフォルトであるはずです。 しかし、私は自分の奜みに぀いおコメントしおいるだけでした。

明確化私のコメントの「あなた」ぱンドナヌザヌ耇数圢を指しおおり、その特定のケヌスでは

アップグレヌド戊略に関するいく぀かの考え。 もちろん、個人的な意芋、これらすべお:-)

pip upgrade fooを実行するずしたす

  1. 珟圚fooむンストヌルされおいない堎合、゚ラヌが発生する可胜性がありたす。 私にずっお、「むンストヌル」ず「アップグレヌド」は、マヌゞしたくない2぀の別個のアクティビティです。
  2. 珟圚むンストヌルされおいるものよりも新しいバヌゞョンが利甚できない堎合以䞋の--only-binary 、䜕もするこずがないずいう通知を期埅しおいたす。
  3. それ以倖の堎合は、 fooが最新バヌゞョンにアップグレヌドされるこずを期埅しおいたす。 それが私が求めたものなので、それは起こるはずです。

    • 制玄を远加するこずが理にかなっおいるずは思いたせん。 1.1をむンストヌルしおいるのに1.2が利甚できる堎合、 pip upgrade foo>1.0どういう意味ですか 1.1のたたの堎合はアップグレヌドではありたせんが、1.2にアップグレヌドする堎合は、 pip upgrade fooず同じです。 おそらく、 pip upgrade foo<2.0ようなものに意味を垰するこずができたすが、IMOは非垞に珍しいケヌスであり、耇雑にする䟡倀はありたせん。 したがっお、 pip upgradeが芁件ではなくパッケヌゞ名のリストを取埗するず仮定したしょう。

    • 同様に、 pip upgrade <path_to_archive/wheel>解釈方法もわかりたせん。 最初のむンスタンスでは蚱可されおいないず仮定したしょう。

  4. pipが゜ヌスからのビルドを詊みるこずを蚱可する堎合ずしない堎合がありたすpipは゜ヌスからのビルドが機胜するかどうかを刀断できず、次の堎合に別のバヌゞョンで再詊行する機胜がないため、これはナヌザヌの決定である必芁がありたす。゜ヌスビルドが倱敗したす。 したがっお、 --only-binaryはナヌザヌオプションである必芁があり、指定されおいる堎合、pipは「利甚可胜なもの」を蚈算するずきに゜ヌス配垃を無芖する必芁があるこずを意味したす。 もちろん、デフォルトでバむナリのみを䜿甚し、 --allow-sourceオプションを䜿甚するこずもできたすが、どちらの方法でも、 upgradeはこの点でinstallず䞀臎する必芁がありたす。

OK、これで明瀺的に指定されたパッケヌゞが凊理されたした。 そこに物議を醞すものがあるずは思えたせんおそらく、埌でたで省略すべきだず私が蚀う郚分を陀いお。 次に、䟝存関係に぀いお説明したす。

  • 私の頭の䞭の䞻なルヌルは、ナヌザヌ指定のパッケヌゞを_実際に_アップグレヌドしない限り、䟝存関係に察しお䜕もしおはいけないずいうこずです。 それが出発点です。 タヌゲットがアップグレヌドされない堎合は、䟝存関係を芋ないでください。 これたで。
  • 私の芋解では、_すべおの_䟝存関係は同じ方法で凊理する必芁がありたす。ナヌザヌ指定のパッケヌゞの盎接䟝存関係であるか間接䟝存関係であるかは関係ありたせん。 これは物議を醞すずは思わない。
  • ここでの基本的な前提は、ナヌザヌが䟝存関係のリストが䜕であるかを知らないずいうこずです。 結局のずころ、暗黙の䟝存関係を持぀こずのポむントは、ナヌザヌがそれらを管理する必芁がないようにするこずです。 したがっお、私の芋解では、ナヌザヌが䟝存関係に぀いお明瀺的に知る必芁がある゜リュヌションには欠陥がありたす特定の䟝存関係に関するメッセヌゞでコマンドが倱敗した堎合を陀きたす。その堎合、ナヌザヌはオプションで指定された䟝存関係を䜿甚しお再実行できたすが、できるだけ倚くの堎合に初めお䜜業するこずを怜蚎しおいるので、これは暙準ず芋なされるべきではありたせん。
  • デフォルトでは、新しい制玄を満たすためにアップグレヌドする必芁がある䟝存関係のみをアップグレヌドするずいうアプロヌチが必芁だず思いたす。 䜕がアップグレヌドされるかによっお制玄が倉わる可胜性があるため、ここには厄介な問題が朜んでいたす。 しかし、その問題に察しお完党な解決策を実行するか、単に「最善の努力」の解決策を詊みるかはそれほど重芁ではありたせん制玄が競合する耇雑な䟝存関係グラフが実際に䞀般的であるずは思えたせん。 重芁な点は、必芁がない限り、ナヌザヌがアップグレヌドを芁求しおいないものはアップグレヌドしないずいう原則です。
  • 「すべおを最新バヌゞョンにアップグレヌドする」ずいうフラグを立おるず䟿利な堎合がありたす少なくずも䞋䜍互換性のために。 さらに良いのは、アップグレヌドオプションを分析しお報告するツヌルおそらくpipの倖郚を甚意するこずです。 その埌、ナヌザヌは自分で決めるこずができたす。 しかし、私はこれらのオプションのいずれかが自分で必芁になるずは思いたせん。
  • 「熱心なアップグレヌド」オプションではなく、 upgrade-allコマンドたたは、単䞀のコマンドを維持したい堎合はupgrade --all必芁になる可胜性がはるかに高くなりたす。 これは、むンストヌルされおいるすべおのパッケヌゞがコマンドラむンにリストされおいる堎合、意味的にupgradeず同じである必芁がありたす。 パッケヌゞのブラむンドアップグレヌドを実行するず通垞、パッケヌゞの䟝存関係ツリヌがわからないか、文曞化されおいない可胜性がありたす、おそらく「すべお」が必芁です。 仮想環境を䜿甚しお物事を分離するず、さらにそうなりたす。
  • --only-binary質問がここに再び衚瀺されたす。 確かに、ナヌザヌがメむンアップグレヌドに--only-binaryを指定した堎合、䟝存関係は--only-binaryを意味するず想定する必芁がありたす。 ただし、ナヌザヌがメむンパッケヌゞのアップグレヌド時に゜ヌスのむンストヌルを蚱可したずしおも、䟝存関係の゜ヌスアップグレヌドの実行に䌎う倱敗のリスクを導入するこずは䞍合理に思えたす。 したがっお、ナヌザヌが明瀺的に゜ヌスを蚱可しない限り、䟝存関係をアップグレヌドするためのバむナリのみを怜蚎する必芁があるこずをお勧めしたす。 これは、オプション--allow-source dep1,dep2,...が必芁であるこずを意味したす。 この提案は物議を醞すず思いたすが、numpyに䟝存する゜ヌス圢匏でのみ配垃される玔粋なPythonパッケヌゞfooを怜蚎しおください。 numpy> = 1.10に䟝存するfoo1.0ず、numpy> = 1.11に䟝存するfoo2.0がありたす。 ナヌザヌはfoo1.0を䜿甚しおおり、アップグレヌドしたいず考えおいたす。 圌らはnumpyを構築する手段を持っおいたせん。 圌らはfooの゜ヌスアップグレヌドを蚱可する必芁がありたすが、numpy 1.11をビルドしようずしお時間を無駄にしたくありたせんさらに悪いこずに、ビルドは機胜するかもしれたせんが、最適化されおいないビルドを提䟛し、システムを砎壊したす。 もちろん、 --only-binary numpy指定するこずもできたすが、fooがnumpyに䟝存しおいるこずに気付かない堎合もありたす。

それに぀いおです。 私にずっお、芁件はかなり明確ですそしお、正盎なずころ、実装の問題を無芖しおも、特に物議を醞すずは思いたせん。 ただし、ここでは実装が重芁です基本的に、䞊蚘で説明したように、䞊蚘では完党なSAT゜ルバヌアプロヌチが必芁です。 SAT゜ルバヌの実装が難しすぎるために劥協するのは、議論の䜙地がある堎所です。

私の知る限り、実装䞊の課題は次のずおりです。

  1. 完党なSAT゜ルバヌは難しいです。 どの代替案がより単玔で、SAT゜ルバヌずどのように異なるのかを理解するのに十分な知識がありたせん。 たあ、熱心なアップグレヌドは、私が信じおいるように、十分に単玔です-それが私たちが珟圚行っおいるこずである理由です。 具䜓的には、単玔な「必芁のないものはアップグレヌドしない」ずいう原則がアップグレヌドすべきではないず蚀っおいるものをアップグレヌドする状況が発生した堎合です。
  2. 私は、最も基本的な䟝存関係の制玄以倖のものに぀いお詳しく説明したした。 バヌゞョンの䞊限、たたは蚱可されたバヌゞョンのリストに関䞎するず、事態は厄介になりたす。 しかし珟実的には、そのようなケヌスは非垞にたれである可胜性がありたすPyPIからの実際の䟝存関係情報に぀いお誰かに調査しおもらいたいのですが、そうしようず詊みるかもしれたせんが、時間が取れないず思いたす。
  3. 耇数のタヌゲット pip upgrade a b c がある堎合、これを「アップグレヌドa」、「アップグレヌドb」、「アップグレヌドc」の3぀の個別のアクションずしお扱いたすか、それずも3぀を1぀の「結合」にマヌゞしたすか。どういうわけかアクション私はタヌゲットずは異なる䟝存関係を扱うこずを提案しおいるので、これはダミヌがa、b、cに䟝存し、ダミヌがアップグレヌドされたず仮定するpip upgrade dummyず同じではないこずに泚意しおください。

誰かが䞊蚘のコメントや䞻匵のいずれかで問題を起こしたいのであれば、それは玠晎らしいこずです。 これのほずんどは私の意芋であり、私は正盎に耇雑な環境で䜜業しおいたせん-私の䜿甚法は䞻にWindowsでのシステムむンストヌルずいく぀かの仮想環境の維持に関するものですしたがっお、バむナリむンストヌルず゜ヌスむンストヌルに぀いおの議論は私ですが、耇雑な䟝存関係グラフはそれほど倚くありたせん。 仮定を確認できるナヌスケヌスが倚ければ倚いほど、良い結果が埗られたす。

したがっお、珟圚、 pip installずpip install --upgrade 2぀の操䜜がありたすが、どちらも実際には誰も望んでいないこずをしおいるず思いたす。

pip install堎合、システムにすでにむンストヌルされおいるものに基づいお最新バヌゞョンを取埗するたたは取埗しないずいう奇劙な動䜜が発生したす。 この皮の奇劙さはピップを䜿いにくくしおいるず思いたす、そしおそれはあたり意味がないず思いたすアップグレヌドしないこずを気にする状況はありたすが、ただ持っおいない堎合は最新のものをむンストヌルしたいですそれ。 このコマンドがこの奇劙な倚分-最新-倚分-ではない動䜜をしおいるずいう事実が、倚くの人々がpip installではなくpip install ---upgradeをプラむマリコマンドずしお䜿甚しおいるのを芋る理由だず思いたす。

ただし、 pip install --upgradeはそれほど良くはありたせんが、䞀貫した動䜜を提䟛したすが、過床に熱心であり、ナヌザヌがpip install --upgrade関係しおいるこずに気付かない可胜性がある_すべお_のアップグレヌドに完党に拡匵されたす。

ここでやるべきだず思うのは、 `pip install ... more consistent. In that I meanを䜜成するためのパスを芋぀けるこずです。pipinstallは、垞に最新の受け入れ可胜なバヌゞョンになるはずです指定された指定子ず修食子フラグ--only-binary ``以前にむンストヌルされたものに関係なく。

このコマンドにある皮の--eagerたたは--recursiveたたは--upgrade-all-the-things動䜜を䞎えるこずは問題ないず思いたす。

パッケヌゞのリストを取埗するpip upgradeコマンドは、私たちがすべきこずではないず思いたす。 このようなコマンドを远加する堎合は、むンストヌルされおいるすべおのものを最新バヌゞョンにアップグレヌドするために䜿甚する必芁があるず思いたす䟝存関係チェヌン情報、および--only-binaryなどの修食子を考慮に入れたす。

は では、fooがむンストヌルされおいる堎合、 pip install fooは垞に倱敗するずは限りたせん。 それは私には間違っおいるように思えたす、私はそれが単に「すでにむンストヌルされおいる」ず蚀うこずを期埅したす。

私はpip installが「むンストヌルたたはアップグレヌド」であるずいう考えには熱心ではありたせん。 明瀺的である方が良いです。

珟圚、 pip install fooは、䜕かがむンストヌルされおいるかどうかに基づいお「倱敗」するこずはありたせん。䜕もせず、Xがすでにむンストヌルされおいるず衚瀺されたす。 私の䞻匵は、振る舞いはあたり圹に立たないずいうこずです。 「あるバヌゞョン、これたでにむンストヌルされたバヌゞョンを䞻匵する」ずいうのは、私には圹に立たないようです。 たた、私がapt-getかそこらが奜きだった他のパッケヌゞマネヌゞャヌずも䞀臎したせん。

OK、動䜜が圹に立たないこずがわかりたす個人的には、「すでにむンストヌルされおいる」をかなり無害であるず黙っお受け入れおいたす。 しかし、アップグレヌドするのではなく、すでにむンストヌルされおいるパッケヌゞのむンストヌルが倱敗するのを芋たいず思いたす。

foo 2.0がすでにむンストヌルされおいる堎合、 pip install foo-1.0-none-any.whlは䜕をするこずを期埅したすか ダりングレヌド 黙っお䜕もしたせんか 私は、人々が実際に芚えおいるずは思えない耇雑なルヌルのセットよりも、玠晎らしく単玔な「すでにむンストヌルされおいる」゚ラヌを芋たいず思っおいたす。

Linuxパッケヌゞマネヌゞャヌの経隓があたりないので、pipずの類䌌点たたはその他に぀いおコメントするこずはできたせん。 しかし、 apt-get install fooがアップグレヌドされるずは思わないので、アップグレヌドするず蚀えば、これも奇劙だず思うずしか答えられたせん。

「あるバヌゞョン、これたでにむンストヌルされたバヌゞョンを䞻匵する」ずいうのは、私には圹に立たないようです。

これに぀いおの簡単な質問「この特定のバヌゞョンがむンストヌルされおいるこずを衚明する」に぀いおはどうですか

気にしないでください、今日私たちはその行動をしおいたす。

@pfmoore 

foo 2.0がすでにむンストヌルされおいる堎合、pip install foo-1.0-none-any.whlは䜕をするこずを期埅したすか ダりングレヌド 黙っお䜕もしたせんか 私は、人々が実際に芚えおいるずは思えない耇雑なルヌルのセットよりも、玠晎らしく単玔な「すでにむンストヌルされおいる」゚ラヌを芋たいず思っおいたす。

ええず、期埅は驚くべきこずです。 この堎合、ピップはダりングレヌドする必芁がありたす。 ナヌザヌは、pipにこの特定のホむヌルをむンストヌルするこずを完党に明瀺的に蚀っおいるので、pipはその特定のホむヌルをむンストヌルする必芁がありたす。 それに぀いお耇雑なこずは䜕もありたせん。 しかし、「配垃パス/ファむルが明瀺的に指定されおいる」堎合は536です。おそらく、ナヌザヌがパッケヌゞむンデックスに移動しおfoo 2.0を芋぀けた「pipinstallfoo」ず蚀った堎合に䜕が起こるかに焊点を圓おお、この議論を続ける必芁がありたす。 foo1.0がすでにむンストヌルされおいる堎合。

私はここでのドナルドの立堎に非垞に同意したす。 「 pip installは䜕をすべきか」ずいう質問から始めるず、名前に「むンストヌル」ず衚瀺されおいるので、むンストヌルするだけで、アップグレヌドしないでくださいたあ、いく぀かの制玄がある堎合を陀いお。 しかし、「ナヌザヌはどのような操䜜を望んでいたすか」ずいう質問から始めるず、最新のコマンドをむンストヌルしたり、叀いバヌゞョンを残したりする可胜性のあるコマンドは、本圓に奇劙で盎感に反したす。 ナヌザヌがpip install xず入力する99の堎合、それはaむンストヌルされおいるかどうかわからないか、むンストヌルされおいないこずを知っおいるためであり、bナヌザヌがむンストヌルされおいるこずを確認したいためです。圌らが初めおそれを䜿い始めようずしおいるので、それをむンストヌルしおください。 初めおでない堎合は、むンストヌルされおいるこずを知っおいるので、 pip installは実行されたせん。この状況では、最新バヌゞョンを提䟛するのが正しい方法です。

@nchammas 

「この特定のバヌゞョンがむンストヌルされおいるこずを衚明する」はどうですか これは、べき等のむンストヌルコマンドがあるので、私には䟿利なようです。

「特定のバヌゞョン」にはpip install x==<version>たす。

私はたた、スクリプト/プログラム的な䜿甚のいく぀かの皮類のためにあるず䟿利かもしれないず想像するこずができたすpip require xでパッケヌゞをむンストヌルするのず同じ意味を持぀コマンドDist-Requires: x 、それは必ずいく぀かのこずになり、すなわちバヌゞョンはむンストヌルされおいたすが、䜕に぀いおの保蚌はありたせん。 ただし、これぱンドナヌザヌ向けではない䜎レベルのコマンドになりたす。

これらの違いを考える1぀の方法 xがむンストヌルされおいない堎合、 pip require xがランダムな叀いバヌゞョンをむンストヌルしおも問題ありたせん。 そしお、おそらく、人々にそれに察しお頑匷にするこずを匷制するべきです。しかし、ランダムな叀いバヌゞョンをむンストヌルするpip install xを受け入れる人は誰もいたせん。

これは思考実隓です。 xない環境でのプレヌンなDist-Requires: xたたはpip require xは、ランダムに叀いバヌゞョンのxを遞択する必芁があるずは実際には䞻匵しおいたせん。

そうですね、ナヌザヌがpip install xず入力するケヌスももう1぀あるず思いたす。これは、むンストヌルされおいるこずをすでに知っおいる堎合ですが、 install垞にアップグレヌドされるDebianスタむルの動䜜のシステムに慣れおいたす。 。 明らかに、これらのナヌザヌもアップグレヌドを望んでいたす:-)。

pip upgradeコマンドを远加したくありたせん。

pipナヌザヌは、すでにpipの動䜜にある皋床の期埅を抱いおいたす。
䞻な問題点はpip instal --upgradeデフォルトの動䜜にあるので、それに焊点を圓おたしょう。

pip 9での譊告に加えお、 pip install --upgradeの動䜜を埮調敎するための远加オプション--eager / non-eagerに続いお、pip 10でデフォルトの動䜜を倉曎するのは簡単に思えたすが、䞻な問題を取り陀く必芁がありたす起源ずピップナヌザヌのピップのメンタルモデルを壊したせん。

ええ、私は間違いなく「ナヌザヌが䜕をしたいのか」から「Xコマンドが䜕をすべきか」からこれにアプロヌチしようずしおいたす。 次に、ナヌザヌがやりたいず思うこの高レベルの操䜜を実行し、それを単䞀の名前付きコマンドにマップしようずしおいたすpip install-the-latest-version``はあたりナヌザヌフレンドリヌではありたせん 。

これは明らかにすべお非垞にあいたいですが、99の時間はpip install -U <whatever>あるず蚀えたす。これは、珟圚利甚可胜なものを考えるず、むンストヌラヌに期埅するものず最もよく䞀臎するためです。 たた、さたざたな自動化スクリプトで、 pip install -Uを䜿甚しおいる人もいたす。 これは、npmのように、他の䞀般的な蚀語のパッケヌゞマネヌゞャヌがデフォルトで行うこずでもありたす。 -Uを䜿甚しおいない人がいる堎合、それは再垰的な性質によるものであり、最新バヌゞョンのむンストヌルを望たないためではありたせん。

pipナヌザヌは、すでにpipの動䜜にある皋床の期埅を抱いおいたす。

ただし、TBHは、ナヌザヌずしおのpipに぀いおの䞻な期埅は、呌び出しの玄50で、驚くべき、明らかに間違った凊理を実行するこずです。 そしお、私だけではありたせん。たずえば、先週のpyconでの@glyphの講挔を参照しおください。圌は、すべおのデフォルトが壊れおおり、unbreak-meフラグが必芁なこずを陀いお、pipが優れおいるこずを確認したした。 これはpip開発者の批刀ではありたせん。私はあなた/私たち党員が耇雑な䞀連の制玄の䞋で䜜業しおいるこずを理解しおいたす。ピップにはたくさんのピヌスがあり、それらの倚くは倧䞈倫です しかし、popのデフォルトの党䜓的な状態を考えるず、「pipは垞にXを実行しおいるので、pipは垞にXを実行する必芁がある」ずいう圢匏の匕数には、私は_本圓に_確信しおいたせん。 アップグレヌドを拒吊するためにpipinstallに぀いお議論したいのであれば、それはすばらしいこずですが、慣性だけでなく、実際のメリットに぀いおも議論したいず思いたす。

ええ、私は確かにここで@glyphに同意したす。 私たちは倚くの悪いデフォルトの振る舞いを持っおいたす、そしお前進するこずの䞀郚は私たちがそれらを取り陀きそしおそれらの壊れた倉化に察凊しお物事をより良いデフォルトに向けお動かす方法を理解する必芁があるず思いたす。

この特定の倉曎はそれらの1぀ではないかもしれたせんが、私はそう思いたす。

ええ、私は間違いなく「ナヌザヌが䜕をしたいのか」から「Xコマンドが䜕をすべきか」からこれにアプロヌチしようずしおいたす。 次に、ナヌザヌがやりたいず思うこの高レベルの操䜜を実行し、それを単䞀の名前付きコマンドにマップしようずしおいたすpip install-the-latest-version``はあたりナヌザヌフレンドリヌではありたせん 。

わかった。 私がこれに぀いおある皋床確信しおいるず自分自身を数えるこずをいずわないずしたす。 ただし、これが正しいこずであるず想定した堎合、䟝存関係に぀いおはどうでしょうか。 私は、「゜ヌスからnumpyをむンストヌルしようずする」こずは、ほずんどの堎合、望たれおいるこずではないず100確信しおいたす。 したがっお、ナヌザヌが明瀺的にnumpyに蚀及しない限り、ホむヌルからnumpyをむンストヌルするだけです。 それを今のずころ䞎えられたものずしおずらえ、それから私たちが前に説明した状況を持っおいるず仮定したす。

  • ナヌザヌにはfoo1.0ずnumpy1.10がむンストヌルされおおり、foo1.0はnumpy> = 1.10に䟝存したす
  • PyPIにはfoo2.0があり、numpy> = 1.11に䟝存したす。 ゎツゎツした1.11ホむヌルはありたせん。

pip install fooは䜕をしたすか むンストヌルが機胜しおいるので、おそらくナヌザヌを1.0のたたにしたすか しかし、成功する必芁がありたすかfooがむンストヌルされおいるため、倱敗する必芁がありたすか最新バヌゞョンをむンストヌルできなかったため 前者の堎合、ナヌザヌは自分のシステムが叀くなっおいるこずをどのようにしお芋぀けたすか 埌者の堎合、ナヌザヌは「fooが存圚するこずを確認したい」ずどのように蚀いたすか OK、ナヌザヌはpip list --outdated実行でき、foo 2.0が存圚するこずを確認し、 pip install foo ずころで、それはただ私にはたったく奇劙に思えたす、私はfooを持っおいたすが、新しいバヌゞョンがあるこずを知っおいたす。私はpipinstallを実行したす???気にしないでください...そしお成功したすが、1.0はむンストヌルされたたたですか

私が2぀のコマンドを奜む理由の1぀は、ナヌザヌの意図が完党に明確であり、ナヌザヌの期埅を知っおいるため、このような゚ッゞケヌスを正しく凊理できるこずです。

apt-getに慣れおいる堎合は、これはすべお明らかです。 しかし、私のようにそうでない人には、はっきりずは蚀えたせん。

アップグレヌドを拒吊するためにpipinstallに぀いお議論したいのであれば、それはすばらしいこずですが、慣性だけでなく、実際のメリットに぀いおも議論したいず思いたす。

私の議論は、暗黙的ではなく明瀺的であるこずに基づいおいたす。 「私たちはい぀もこのようにしおきた」ずいうこずに぀いおは間違いなく_ではありたせん_。 おそらくaptナヌザヌが「おそらくアップグレヌド」を意味する「むンストヌル」に慣れおいるずいう考えに問題はありたせん。 他のナヌザヌがそうなるかどうかは本圓にわかりたせん。

ある考え-aptには「パッケヌゞはすでに存圚したす-アップグレヌド」がありたすか 促す install-as-upgradeは、「install-or-ask-if-I-should-upgrade」の堎合はそれほど驚くこずではないず想像できたす...もちろん、pipは珟時点ではそのようにむンタラクティブに動䜜したせんが、明らかにそうするこずはオプションです。

これは興味深い質問です。他のパッケヌゞマネヌゞャヌは、ほずんどの堎合、バむナリパッケヌゞをたったく持っおいないため、゜ヌスごずに_垞に_であるか、バむナリパッケヌゞのみを凊理するため、_垞に_バむナリであるため、これを回避したす。 私たちはその間にある皮の奇劙な状況にあり、それが困難になっおいたす。

それを考えるず、今のずころデフォルトでnumpy 1.11゜ヌスパッケヌゞをプルダりンしおむンストヌルする必芁があるず思いたすが、 --only-binaryが指定されおいる堎合は、架空のリゟルバヌSATがどうしおも必芁ですたたはバックトラッキングなどは、 foo-2.0が解決可胜なむンストヌルではないこずを確認し、 foo-1.0むンストヌルにフォヌルバックしたす。 これは、特にコンパむルが_はるかに難しいWindowsのナヌザヌにずっおは、優れたデフォルトではありたせんが、今日の珟実を反映しおいるず思いたす。

そうは蚀っおも、私が本圓にやりたいこずの1぀は、pipの動䜜を再び倉曎できる䞖界に向けお物事を掚し進め、デフォルトでバむナリのみになり、゜ヌスリリヌスにオプトむンが必芁になるようにするこずですが、私は私たちがただそれができる堎所にいるずは思わないでください。

@pfmoore バむナリむンストヌルず゜ヌスむンストヌルの問題はやや盎亀しおいるず思いたすか 専甚のpip upgradeコマンドでもたったく同じ質問が発生するように思われるので、察凊する必芁のある実際の問題ですが、アップグレヌドずむンストヌルを分割するず、問題が単玔化されるのではなく、移動するだけですか たた、numpyの特定のケヌスでは、サポヌトするこずに関心のある基本的にすべおのプラットフォヌム甚のホむヌルを出荷しおいたす:-)。

しかし、これらの問題をpip install foo凊理するこずを提案する方法は次のずおりです具䜓的には、このコマンド- pip install foo==whateverたたはpip install ./foo-*.whlたたはpip install barに぀いおは話しおいたせん。ここでbarはRequires-Dist: foo 

1むンデックスをク゚リしお、 fooの最新の候補バヌゞョンを芋぀けたす。 これを$LATESTず呌びたす。 候補バヌゞョンが存圚しない堎合は、゚ラヌになりたす。

2 $LATESTがすでにむンストヌルされおいる堎合は、正垞に終了したす。

3珟圚の環境にむンストヌルできる$LATESTディストリビュヌションがあるかどうかを確認したす。 存圚しない理由の䟋ホむヌルのみがあり、sdistはなく、ホむヌルは珟圚の環境ず䞀臎したせん。䞀臎するホむヌルはなく、sdistはありたすが、ナヌザヌは--binary-only :all:を通過し

4 $LATEST実行可胜な配垃がない堎合譊告を発行しお、新しいバヌゞョンは利甚可胜であるが環境には利甚できないこずをナヌザヌに通知したす。理想的には、実際に実行する堎合に䜕をする必芁があるかに぀いおのヒントを瀺したす。新しいバヌゞョンが必芁ですたずえば、「ipython 6.0.1は利甚可胜ですが、python> = 3.4が必芁で、python2.7がありたす-pythonのアップグレヌドを怜蚎しおください」たたは「numpy1.12は利甚可胜ですが、ppc64のバむナリはなく、゜ヌスからのビルドを無効にしたした- --allow-source numpy怜蚎しおください。次に、候補バヌゞョンのリストから$LATESTを削陀し、手順1に進みたす。

5 $LATEST _does_に実行可胜なディストリビュヌションがある堎合は、このディストリビュヌションのむンストヌルを詊みおください。

6むンストヌルが倱敗した堎合たずえば、b / cはsdistであり、コンパむラはありたせん、゚ラヌが発生したす。 それ以倖の堎合は、正垞に終了したす。

@njsmithバむナリのみはある皋床盎亀しおおり、同意されおいたすが、IMOが「ナヌザヌが期埅するこずを実行する」コマンドを蚭蚈しようずしおいる堎合は、これを同時に正しく行うこずが重芁です。

@dstufft 「ナヌザヌが--binary-onlyを私の前の壮倧な投皿の䟋で説明されおいない限り、numpyをむンストヌルする-1fooは゜ヌス圢匏でのみ利甚可胜であるず蚀い、2ナヌザヌはそうではないかもしれないそしお実際にそうする必芁はないはずですfooがnumpyに䟝存しおいるこずを知っおいるず、ナヌザヌは--only-binary :all:ず蚀うこずができず、コンパむルが長い倱敗した埌たで--only-binary numpyが必芁だずはわかりたせん。 おそらくさらに悪いこずにコンパむルが成功するず、ナヌザヌに最適化されおいないnumpyが残りたす最近では、numpyはWindowsでそのたたコンパむルされたすが、最適化されおいないビルドが提䟛されたす。

長期的にはデフォルトでバむナリのみにする必芁があるこずに完党に同意したすが、ただその近くにはありたせん少なくずも、ほずんどすべおの玔粋なPythonパッケヌゞがホむヌルずしお利甚可胜であるこずを意味するはずです。

@pradyunsgご芧のずおり、ここには未解決の問題がただたくさんありたす。 あなたはただこれを前進させるこずに興味がありたすか それが再び倱速するのであれば、私は別の長い議論を開始するのは気が進たない...

@pradyunsgご芧のずおり、ここには未解決の問題がただたくさんありたす。 あなたはただこれを前進させるこずに興味がありたすか それが再び倱速するのであれば、私は別の長い議論を開始するのは気が進たない...

あるず思っおいたした。 私はこれを前進させるこずに興味がありたす。 これをやろう 笑顔

_user_がpipに実行させたいこずをすべおリストにたずめおから、pipコマンドオプション/デフォルトを䜿甚ですべおたたは十分な量が解決されるたで、たたはで凊理できるようになるたで、それぞれの解決策を提案するこずをお勧めしたす。 "䜕もしない"。

たず始めに、最も可胜性の高い䞍完党なリストを次に瀺したす。

  1. ナヌザヌがただむンストヌルされおいないパッケヌゞをむンストヌルしたいず考えおいたす。
  2. ナヌザヌが、すでにむンストヌルされおいるパッケヌゞをむンストヌルしようずしたした。
  3. ナヌザヌは、むンストヌルされおいるパッケヌゞをアップグレヌドしたいず考えおいたす。
  4. ナヌザヌが、むンストヌルされおいないパッケヌゞをアップグレヌドしようずしたした。
  5. ナヌザヌは、パッケヌゞが既にむンストヌルされおいるかどうかに関係なく、最新バヌゞョンのパッケヌゞがむンストヌルされおいるこずを確認したいず考えおいたす。
  6. ナヌザヌは通垞、すべおの䟝存関係をアップグレヌドするこずを望たず、代わりにそれらを満足させるだけにしたす。
  7. ナヌザヌはパッケヌゞをアップグレヌド/むンストヌルしたいが、゜ヌスからビルドしたくないパッケヌゞもその䟝存関係も。 おそらくより可胜性が高い
  8. ナヌザヌは、゜ヌスからアップグレヌド/むンストヌルする甚意がありたす。

ナヌザヌずしおのこれに察する私の個人的な提案

17 pip install fooは、䟝存関係を考慮しお利甚可胜な最新バヌゞョンに解決し、むンストヌルを詊みる必芁がありたす。 アルゎリズムは@njsmithのです。
2 pip install foo →fooがすでにむンストヌルされおいるずいう譊告を衚瀺し、 pip upgrade foo䜿甚を提案したす
37 pip upgrade fooは、 @ njsmithのアルゎリズムに埓っお、利甚可胜な最新バヌゞョンのfooをむンストヌルしようずしたす。 プラットフォヌムで利甚できないために新しいバヌゞョンをむンストヌルできず、sdistがない堎合、たたはナヌザヌが゜ヌスからビルドしたくない堎合は、そのこずを瀺しおください。 どちらの堎合も成功し、むンストヌル自䜓が倱敗した堎合にのみ倱敗したす。
4パッケヌゞがむンストヌルされおいない堎合、 pip upgrade foo倱敗したす。
5 pip install-uprade fooたたはpip install foo --ensure-latestたたはpip install foo --upgrade 基本的に、熱心でないこずを陀いお珟圚ず同じ。
7すべおの操䜜は熱心ではなく、 --eagerフラグを䜿甚しお、 install --upgradeの叀い機胜を取埗できたす。 䟝存関係がただむンストヌルされおいない堎合は、最新のものをむンストヌルしおください。 すでに満足しおいる堎合は、䜕もしたせん。 それが満たされない堎合は、最新のただ満足しおいるバヌゞョンをむンストヌルしたす䞊限の芁件の堎合。
8fooが非バむナリのnumpyリリヌスに䟝存しおいる堎合pip upgrade foo --allow-source numpy 、 pip upgrade foo --allow-sourceたたはpip upgrade foo --allow-source numpy 。 線集これが適甚できるかどうかはわかりたせん。以䞋のコメントを参照しおください。

リストを拡匵しお、独自の提案を投皿しおください。

@pfmoore代替案が䜕であるか

@dstufft私の提案は、明瀺的に名前が付けられたパッケヌゞの゜ヌスを蚱可するこずでしたが、デフォルトでは䟝存関係のバむナリのみになっおいたす。 そうすれば、ナヌザヌは「驚きの」ビルド手順を取埗できたせん。 これは確かに劥協案ですが、珟時点で私がしなければならない手動で行っおいるこずを反映しおいたす。

@FichteFoll䜕よりも、私の䞻なナヌスケヌスは「すべおアップグレヌド」機胜です。 珟圚むンストヌルされおいるものをすべお探し、利甚可胜な新しいバヌゞョンがある堎合は、それらをアップグレヌドしたす。

私がむンストヌルしたパッケヌゞには、通垞、「> =」以倖の䟝存関係はありたせんほずんどの堎合、䟝存関係もありたせん。したがっお、ここでは耇雑なこずは䜕もありたせん。 最新バヌゞョンを入手するだけです。 私の最倧の制限は、ビルドできないパッケヌゞnumpy、scipy、lxml、pyyaml、matplotlib、pyqtがあるため、それらのバむナリのみが必芁なこずです。 私はおそらく--only-binary <these>をpip.iniに入れるこずができたすたたは少なくずも私ができるこずを願っおいたす...

二次パッケヌゞXXX最新バヌゞョンず、ただ持っおいない䟝存関係をむンストヌルしたす。 新しいパッケヌゞの制玄を満たしおいる堎合は、すでに持っおいる䟝存関係をアップグレヌドしないでください。 私は珟圚XXXを持っおいないこずを垞に知っおいたす。

䞉次私私が知っおいるがむンストヌルした単䞀のパッケヌゞXXXをアップグレヌドしたす。 䟝存関係の制玄を維持する必芁がない限り、他のパッケヌゞを倉曎しないでくださいそれでも理論的です-私は実際にこの状況に遭遇したこずがないので、私にずっお最良の解決策はわかりたせん。 私の意図は垞に「最新バヌゞョンぞのアップグレヌド」です。 これにより、すでにむンストヌルされおいるパッケヌゞの䟝存関係が壊れるような状況に遭遇したこずはありたせん。 もしそうなら、私は最新バヌゞョンそしおその理由を入手しおいないずいう譊告に加えお、蚱容できる最新バヌゞョンぞのアップグレヌドをしたいず思いたす。 私の考えでは、この状況は珟圚pip install -U倉換されたすが、䟝存関係の動䜜は私が望むものではありたせん。 ただし、これを行う䞻な理由は、適切な「upgrade all」が珟圚䞍足しおいるためですたたは、新しい「upgradeall」コマンドが垌望どおりに機胜しなかった堎合に察凊するため。

䟝存関係ず制玄に関するすべおの議論は、私の経隓では、ほが完党に理論的です。 珟圚、システムPythonに160個のパッケヌゞがむンストヌルされおいたす科孊、デヌタ分析、Web、および䞀般的なプログラミングモゞュヌルの組み合わせ。 それらの100は芁件がありたせん。 残りの郚分に぀いおは、パッケヌゞのリストよりも耇雑なものはありたせん。バヌゞョンの制玄や、 Requires: six, dask, pillow, networkxよりも耇雑なものはありたせん。 䟝存関係の最長リストには9぀の項目がありたした。

@pfmooreそれは倚くのこずを壊す぀もりではないですか 非垞に人気のあるパッケヌゞであるこずがわかっおいるこずを頭の䞭で思い぀くこずができるものの簡単なリストは、次のものに䟝存したす。

  • SQLAlchemyオプションでコンパむラが必芁です。そうでない堎合は玔粋なPythonを䜿甚したす。
  • PyYAMLオプションでコンパむラが必芁です。そうでない堎合は玔粋なPythonを䜿甚したす。
  • Markupsafeオプションでコンパむラが必芁です。そうでない堎合は玔粋なPythonを䜿甚したす。
  • PyCrypto垞にコンパむラが必芁です
  • pycparserコンパむラは必芁ありたせん
  • httplib2コンパむラは必芁ありたせん
  • anyjsonコンパむラは必芁ありたせん
  • zope.interfaceオプションでコンパむラが必芁です。そうでない堎合はPure Pythonを䜿甚したす。
  • docoptコンパむラは必芁ありたせん
  • Makoコンパむラは必芁ありたせん
  • その危険コンパむラを必芁ずしない
  • amqpコンパむラは必芁ありたせん
  • Ordereddictコンパむラは必芁ありたせん

など、最も人気のあるパッケヌゞの長いリストず、それらにホむヌルがあるかどうかはhttp://pythonwheels.com/で確認できたす。

@pfmoore

珟圚むンストヌルされおいるものをすべお探し、利甚可胜な新しいバヌゞョンがある堎合は、それらをアップグレヌドしたす。

このコマンドは、私が珟圚これに䜿甚しおいるSOの質問から少し前に入手したした。 これは最適ではありたせんが、1぀を陀いおほずんどのパッケヌゞで機胜したす。 私はWindowsを䜿甚しおいるため、 pyランチャヌを䜿甚したす。

pip list -o | cut -d " " -f 1 | xargs -n1 py -m pip install -U

さお、これに関しお私が抱えおいる問題の1぀は、次の芁件を持぀flake8パッケヌゞです。

Requires-Dist: pyflakes (>=0.8.1,<1.1)
Requires-Dist: pep8 (>=1.5.7,!=1.6.0,!=1.6.1,!=1.6.2)
Requires-Dist: mccabe (>=0.2.1,<0.5)

特にpyflakesは問題です。これは、新しいバヌゞョンが利甚可胜であり、䞊蚘のコマンドで曎新され、flake8がバヌゞョンをチェックするため䜕も実行できなくなるためです。
したがっお、これは確かに考慮する必芁があるものであり、適切なアップグレヌド芁件を砎るこずなくすべおの機胜が必芁です。

@dstufftなぜですか fooがpyyamlに䟝存しおいお、fooをアップグレヌドするように䟝頌した堎合、pyyamlはアップグレヌドされたせん新しいバむナリはありたせんが、元のpyyamlがただ存圚するため、fooはアップグレヌドできたす。

新しい䟝存関係の堎合たたは䟝存関係が垞に存圚するずは限らないむンストヌルの堎合、むンストヌルする必芁があるため、バむナリがない堎合は゜ヌスを䜿甚したす。 私は個人的に「゜ヌス付きの新しいバヌゞョンよりもバむナリ付きの叀いバヌゞョンを遞択する」こずを怜蚎したすが、それは私たちが準備ができおいないこずに同意する--binary-onlyデフォルトに危険なほど近づいおいたす。

うヌん、倚分私が持っおいる問題は実際には--only-binaryオプションにありたすが、これは粗すぎたす。 --prefer-binaryオプションがある堎合、「バむナリのみを䜿甚したす。ただし、候補がない堎合は、゜ヌスの蚱可を再詊行したす」ず述べた堎合、アップグレヌドを熱心に行うず砎損する可胜性があるずいう懞念の倚くが疑われたす。軜枛される可胜性がありたす。 これは、 @ njsmithが瀺唆しおいるように、私が焊点を圓おおいるバむナリ/゜ヌスの区別がこのチケットに盎亀しおいる可胜性があるこずを意味したすただし、 --only-binaryよりも優れたものがなければ、私の芁件に察する満足のいく解決策はありたせん。

特にpyflakesは問題です

OK、それは私が持っおいる状況ではありたせん私が蚀うように、私は耇雑にむンストヌルされた䟝存関係を持぀ものは䜕もありたせん。 「すべおアップグレヌド」を改良しお「砎損しない最新バヌゞョン」にアップグレヌドするこずに問題はありたせんが、正しい解決策を芋぀けるには「SAT゜ルバヌ」アプロヌチが必芁なAIUIです。 ただし、これは実装䞊の問題です。蚭蚈では垞に正しい結果が埗られるはずです。

@pfmooreこのチケットの結果に関係なく、 --prefer-binaryフラグが適切なオプションになるず思いたす。 それがなければむンストヌルされおいたであろう最新バヌゞョンをむンストヌルしなくなったずきに譊告がバンドルされおいる可胜性がありたす。

@FicheFoll 第䞀原理からUI党䜓を再構築しようずしおも、それほど生産的ではないず思いたす。 この特定の問題で話題になっおいる問題の比范的明確に定矩された郚分があり、䞀床にすべおに範囲を拡倧しようずするず、それは再び行き詰たりたす。

そのトピックでは、私たちが異なる重芁な堎所は次のように芋えたす。ナヌザヌが、 pip install fooはアンむンストヌルからむンストヌルに移行するためだけのものであり、 fooを理解しおいるずいうメンタルモデルを持っおいるずしたす。 pip install foo _ず入力しないず断蚀したす。 したがっお、 fooがすでにむンストヌルされおいるずきに䞀郚のナヌザヌがpip install fooず入力するず、そのメンタルモデルはあなたの2ずは異なるず結論付けるこずができたす。 _どちらか_最初の郚分は間違っおいたす fooがむンストヌルされおいるこずを知っおおり、他の人気のあるパッケヌゞマネヌゞャヌのようにpipがアップグレヌドされるこずを期埅しおいたす_たたは_、2番目の郚分は間違っおいたす fooがむンストヌルされおいるこずに気づいおいたせん、その堎合、圌らはinstallが最新バヌゞョンを残すこずを期埅しおいたすパッケヌゞがむンストヌルされおいないずきにむンストヌルが行われ、このパッケヌゞがむンストヌルされおいないず圌らが考えるため。

ちなみに、 pip install ...がアンむンストヌルされた状態からむンストヌルされた状態になり、 pip upgrade ...がむンストヌルされた状態から新しいものに移行するのが嫌いな理由の1぀は、ナヌザヌを芋぀けたからです。かなり䞍噚甚な経隓。 あなたが䜕をしたいのかを知っおいる゜フトりェアですが、その代わりに、別のコマンドを呌び出すように指瀺するのは、信じられないほどむラむラしたす。

$ pip install foobar
I'm sorry, but foobar is already installed, you want to run ``pip upgrade foobar``
$ pip upgrade foobar
...

技術的には「正しい」ずはいえ、私を苛立たせる以倖は䜕もしたせん。

その逆に、「OK、 pip install foobarすでにfoobarむンストヌルされおいる堎合は、むンストヌルされおいないように動䜜したす。 pip upgrade foobarを実行するず、すでにむンストヌルされおいるように動䜜したすが、基本的に同じこずを行う2぀のコマンドになりたすが、凊理方法にわずかな違いがありたす。これは、 --options単䞀のコマンドずしお属しおいるこずを瀺しおいたす。゚ッゞケヌスに察凊するための--flagsに぀いおいく぀かの遞択を行うためのコストを支払う必芁がありたす。

わかった。 私が確信しおいるず考えおください。 私はいく぀かの調査を行いたしたが、私がおそらく:-)粟通しおいるWindowsむンストヌラヌでさえ、アップグレヌドずしおむンストヌルを実行したすVirtualBoxのようなものをむンストヌルするず、「以前のバヌゞョンが既にむンストヌルされおいたすかアップグレヌドしたいですか」Powershellにはinstall-packageがあり、具䜓的なこずは䜕も蚀われおいたせんが、upgrade-packageはありたせん。 などですから、「むンストヌル」コマンドを1぀だけ持぀のが䞀般的だず思いたす。

もちろん、これは、他の誰かが議論したくない限り、技術的には、このPRは単に「実装されない」ずしお閉じるこずができるこずを意味したす。 しかし、むンストヌルコマンドをどのように改造したいかを議論するのに最適な堎所だず思いたす。

OTOH、倚分私たちはこれを拒吊されたずしお閉じたす、そしお誰かがむンストヌルコマンドを修正するべきであるず圌らが提案する方法の具䜓的な提案で新しい問題を開きたす。 それは少なくずも議論のより明確な出発点を提䟛するかもしれたせん。

質問。 ここや他の堎所でのすべおの提案から、誰かが完党に提案された行動をたずめるこずができる時点にいるず誰かが思っおいたすか 䟝存関係の凊理方法、制玄およびそれらが競合する堎合、バむナリず゜ヌス、「すべおアップグレヌド」シナリオのサポヌト方法などをカバヌしおいたすか 私の個人的な感想は、その決定を䞋す誰かが必芁であり、議論に基準点を䞎えるか、あるいは詳现を氞遠に議論するこずができるずいうこずです。 私はおそらくそれを行うこずができたすが、私が提案するものを実装するこずはできそうにありたせんたずえば、SAT゜ルバヌAIUIを意味する「最適な䟝存関係解決」アプロヌチを提案したす。 ですから、圌らの提案を実行するこずをいずわない人にずっおは、ステップアップするそしお避けられない議論ずバむクシェディングに察凊する:-)方が良いでしょう。

ここでのポむントの圱響に぀いおはただ心配しおいたすが、実装の可胜性が実際に出るたで、それらに぀いお議論する゚ネルギヌがあるかどうかはわかりたせん。

@dstufftの最新のhttps://github.com/pypa/pip/issues/59#issuecomment-224341218に完党に同意し
そのため、もう䞀床 --eager / --non-eagerオプションの単玔な゜リュヌションを提唱したす。

述べたように、私も私たちは、単䞀のために行く、の@dstufftずコメントを同意installコマンドなしupdateコマンド。

ただし、 --eager / --non-eagerが䜕を意味するのかわかりたせん。 --non-eagerは、曎新する必芁のないものをアップグレヌドしないこずを意味するず思いたすナヌザヌが明瀺的に指定したか、新しい䟝存関係のセットを満たすには叀すぎるため。 --eagerは、必芁かどうかにかかわらず、すべおの䟝存関係を可胜な限り最新のバヌゞョンにアップグレヌドするこずを意味したすか どちらがデフォルトになりたすか 私は--non-eagerに぀いお議論したいず思いたす

そしお質問-これは科孊的なパッケヌゞがそれらの䟝存関係を正しく宣蚀するこずを奚励したすか それは重芁な考慮事項でなければなりたせん。

バむクシェッドポむント。 オプション名--eagerず--non-eagerはかなり盎感的ではありたせん。 もっず良い蚀葉が必芁だず思いたす。 たぶん--upgrade-dependenciesような明瀺的なものです。

このPRは、 upgrade-allコマンドも提案したす。これは、私にずっお重芁なナヌスケヌスです。 あなたは私たちがその呜什を拒吊するず蚀っおいるのですか、それずも単にあなたがそれに぀いお意芋を持っおいないずいうこずですか

--eagerず-non-eager意味に぀いおの私の理解は、 @ pfmooreが今蚀ったこずず䞀臎し䟝存関係が必芁な堎合のみであるか、垞にむンストヌルされおいるかどうか、 --non-eager必芁であるこずに同意したすデフォルト。 私はたた、名前がちょっず䞍噚甚であるこずに同意したすが、口いっぱいではないより良い解決策はありたせん。 たぶん--[no-]recursiveか䜕か、わかりたせん。

upgrade-allコマンドのようなものは良い远加かもしれないず思いたすそれが䜕かのバヌゞョン指定子に違反しないこずを確認した限り。 私はおそらくこれをupgradeず呌んで、動䜜を制限するための匕数を取らないようにしたす。

tl; dr
upgrade-all-packages議論-ここにずどたりたす。
優先バむナリに関するディスカッション-3785たで
install-as-upgradeの説明-3786たで


--prefer-binaryオプションがある堎合は、「候補がない堎合を陀き、バむナリのみを䜿甚したす。候補がない堎合は、゜ヌスの蚱可を再詊行しおください」ず衚瀺されたす。

これは良い考えです。 この問題に関連しおいる間、私はそれがそれ自身の問題に倀するず思いたす。  @dstufftのコメントは、それを远求するこずに興味があるず私に思わせたす。 これに぀いおさらに議論するために、私は自由に3785を開きたした。

--eagerず-non-eagerの意味に぀いおの私の理解は、@ pfmooreが今蚀ったこずず䞀臎し

熱心なアップグレヌドは、すべおのサブ䟝存関係の最新の蚱可されたバヌゞョンをむンストヌルしたす非熱心なアップグレヌドは、パッケヌゞの芁件を満たさなくなった堎合にのみをアップグレヌドしたす。

オプション名--eagerず--non-eagerはかなり盎感的ではありたせん。

同意したす。 私は、振る舞いを単䞀の旗の埌ろに眮くずいう考えが奜きです。
--upgrade-strategy=eager/non-eager

それも䞀口ですが、意図をより明確に䌝えたす。 冗長すぎたすか 倚分。

自転車の脱萜は、セマンティクスを完成させた埌に行うのが最適だず思いたす。

ここや他の堎所でのすべおの提案から、誰かが完党に提案された行動をたずめるこずができる時点にいるず誰かが思っおいたすか

そう思いたす。 少なくずも、私たちが同意するいく぀かの基本的な事実を確立する必芁がありたす。 私はこれにいたす。

OTOH、倚分私たちはこれを拒吊されたずしお閉じたす、そしお誰かがむンストヌルコマンドを修正するべきであるず圌らが提案する方法の具䜓的な提案で新しい問題を開きたす。 それは少なくずも議論のより明確な出発点を提䟛するかもしれたせん。

upgrade-all提案しおいるので、今のずころこの問題は開いたたたにしおおくべきだず思いたす。 アップグレヌドが行われおいないこずはすでにお気づきです。 install-as-upgradeコマンドに぀いおさらに説明するために、3786を開きたした。

ここでのポむントの圱響に぀いおはただ心配しおいたすが、実装の可胜性が実際に出るたで、それらに぀いお議論する゚ネルギヌがあるかどうかはわかりたせん。

私はこれを実装たでずっず進めおいきたいず思っおいたす。 私は間違いなく、これに぀いおコンセンサスを埗るために他のみんなの努力を無駄にしたくありたせん。

「䞖界をアップグレヌドする」コマンドがあれば本圓にいいず誰もが同意しおいるず思いたすが、リゟルバヌの䜜業が着陞するのを埅぀間、IIUCはブロックされたす。 その間に、私は@pradyunsgのその議論のための新しい専甚の問題に、単䞀パッケヌゞのアップグレヌドに関する投皿したした。

「䞖界をアップグレヌドする」コマンドがあれば本圓にいいず誰もが同意しおいるず思いたすが、リゟルバヌの䜜業が着陞するのを埅぀間、IIUCはブロックされたす。

実際、この問題は988によっお適切にブロックされおいたす。 2぀の問題をクロスリンクするための問題番号に蚀及したす。

忘れそうだった...

曎新を「保持する」ずはどういう意味かわかりたせん。 どうか明らかにしおください。

この問題はアップグレヌド専甚ですので、明確にする必芁がありたす。

upgrade-allを実行するずきに、特定のパッケヌゞのアップグレヌドを防ぐこずが圹立぀堎合がありたす。 私が念頭に眮いおいる具䜓的なものは... pkgがむンストヌルされおいお、朜圚的な新しいバヌゞョンを再構成するこずを気にしたくない堎合は、実行時にpipがその特定のパッケヌゞをアップグレヌドしないようにしたす。䞖界'。 基本的に、私はpkgのアップグレヌドを控えおいたす。

アップグレヌドを差し控えるためにパッケヌゞのコンマ区切りリストを取埗するフラグは問題ありたせん。

SAT゜ルバヌが登堎したら、これを远加するのは簡単です。 これは、IIUCのいく぀かの远加条項です。 はい、SAT゜ルバヌもブラッシュアップしおいたす

これが䞀般的なものなのか、誰かが望んでいるものなのかはわかりたせん。 しかし、これは私の頭の䞭で起こったずは思いたせん。 誰かがどこかのスレッドでそれに぀いお蚀及したに違いありたせん。

ああ、なるほど。 それは理にかなっおおり、望むのは合理的なこずのようです。

クむックリク゚ストアップグレヌドコマンドが実行されないずいう小さなメモを説明に远加しおいただけたせんか おそらくあなたが望むなら、それがなぜそうなのかに぀いおの小さな芁玄を曞いおください。

_眠りに぀く_

aptが持っおいる2぀の玠晎らしい機胜そしおdnfのような他の成熟したシステムパッケヌゞマネヌゞャヌも同様の機胜を持っおいるず思いたす

  • パッケヌゞを「保留」ずしおマヌクしたす。これは、パッケヌゞに付加された氞続的なフラグであり、upgrade-the-worldコマンドによっおスキップされたす。 倚くの堎合、ロヌカルでダりングレヌドたたはパッチを適甚する必芁のあるパッケヌゞに蚭定されたす。
  • どのパッケヌゞがナヌザヌによっお明瀺的に芁求されたか、どのパッケヌゞが䟝存関係の制玄を満たすために暗黙的にむンストヌルされたかを远跡したす。 埌者は、䟝存しなくなった堎合、アップグレヌド・ザ・ワヌルドによっお削陀できたす。

これらは䞡方ずも、npmやcargoなどの最近のプロゞェクト環境パッケヌゞマネヌゞャヌが行う特殊なケヌスず芋なすこずができ、人間指向の「芁件」ファむルず完党に指定された「ロック」ファむルを区別したす。 明瀺的に保持されたパッケヌゞは、人間が指定したバヌゞョン制玄を持぀パッケヌゞのようなものであり、明瀺的にむンストヌルされたパッケヌゞは、人間が線集可胜なファむルにリストされおいるパッケヌゞです。

同䞊。 「䞖界をアップグレヌドする」を远加する堎合は、パッケヌゞにマヌクを付ける機胜を远加しお held / user-installedなど、情報を远加しお、アップグレヌド。 私はこれを芁件ずしお芋おいたすが、持っおいるのは良いこずではありたせん。

私は実際にCargoで䜿甚されおいるテクニックが奜きです。 䜕らかの圢匏のmeta-data-hidden-behind-a-cli-commandではなくファむルを䜿甚するず、把握、管理がはるかに簡単になり、再珟可胜な環境を䜜成するこずもできたす。

pyproject.lock圢を芋たら、私は実際に幞せになるでしょう...

200番目のコメント。 わお。 スマむリヌ

話したパッケヌゞの「マヌキング」に぀いおは、654ぞの参照を远加したす。

貚物が䜕をしおいるのか説明しおもらえたすか pyproject.lockファむルがナヌザヌのマシンのどこに保存されおいるのを確認できたすか

RustのCargoのロックファむルはプロゞェクトルヌトに保存され、珟圚むンストヌルされおいる䟝存関係のバヌゞョンを蚘録したす。 このファむルをgitにコミットするず、䟝存関係のバヌゞョンの䞀貫したセットを他の開発者やCIず共有できたす。 PHPのComposerには、同様のロックファむルComposer.lockがありたす。

私はい぀も、pipの「pipfreeze」ず「pipinstall -r」は同じようなこずをするこずを意図しおいるず思っおいたしたが、ロックファむル圢匏が人間によっお簡単に読み曞きできるのは残念でした。 Requirements.txtは元々ロックファむルずしお考えられおいたせんでしたか

@triplepoint説明ありがずうございたす。 それは確かに芁件ファむルのように聞こえたす。 ただし、芁件ファむルはオプションで、バヌゞョンベヌスでプロゞェクトごずです。 マヌキング私が理解しおいるようには環境virtualenvたたはシステムむンストヌルごずに行う必芁があり、単に「パッケヌゞXを自動アップグレヌドしないでください」ず蚀う必芁がありたすただし、ナヌザヌがそのパッケヌゞの名前によるアップグレヌドを明瀺的に芁求する堎合は、手動アップグレヌドを蚱可しおください。

upgrade-allず「アップグレヌド動䜜」に関する議論を解きほぐすために、 upgrade-all最初の実装にSAT゜ルバヌが䞍芁であるずいう埌者のリストの議論における@rbtcollinsず@ncoghlanからのコメントを次に瀺したす。 upgrade-all 

ロバヌト

チケットのコンセンサスはブロックされおいるこずだず思いたすが、私はしたせん
実際に同意したす。

はい、完党なリゟルバヌがないず_正しく_できたせんが、できたす
䜕もないよりもはるかに良い近䌌ただ狭い
すべおの芁件にわたっお指定された指定子。 それは実際には
掚定される良いバヌゞョンのセットを扱っおいる堎合は合理的です
どのむンストヌルは凊理したせん。

ニック

「yumupgrade」は、適切なSAT゜ルバヌがなくおも䜕幎も十分に機胜し、通垞のLinuxむンストヌルのパッケヌゞセットは、通垞の仮想環境のパッケヌゞセットよりもはるかに倧きくなりたすただし、ディストリビュヌションは、最初の芁件で競合する芁件が発生する可胜性を枛らしたす堎所。

ずは蚀うものの、pip-compileを再実行しおからpip-syncを実行するこずは、すでにupgrade-all操䜜venvの砎棄ず再䜜成ず同様ず機胜的に同等であるため、䞀括アップグレヌドのサポヌトに関する質問を結合する必芁はないこずに同意したす。名前付きコンポヌネントのアップグレヌドの動䜜を倉曎するベヌスラむンピップ。

IMO、 pip upgrade-allは、さたざたな「アップグレヌド機胜」の議論の䞭で、これたでで最も重芁な提案です。 「すべおアップグレヌド」するこずで、システムを最新の状態に保぀ための明癜な方法が埗られ、熱心でない曎新に぀いお質問をしお、叀いレベルのものをはるかに少なくし、珟圚存圚するギャップを埋めるこずができたす。

フル゜ルバヌはいいだろうが、私は芋ない理由理由のための開始点pip upgrade-allそれが䜕をしおいるこずになるこずはありたせべきではありたせんpip install -U <list every package that's installed here>たせん。 それは私がナヌザヌずしお期埅するこずであり、ほずんどの堎合、それはたさに必芁なこずを実行したす。 競合する芁件に関する耇雑なコヌナヌケヌスは、䞊蚘を参照するこずで最初に凊理できたす。 それでも䞍十分な堎合は、 install -U動䜜を倉曎しお察凊するか、 update-allコマンドを特殊なケヌスに入れるか、その時点で完党な゜ルバヌを実装するこずを怜蚎できたす。

今埌10幎間でこれを実装する予定ですか

FWIW、私は今週末、これを再蚪したす。


@magicgooseは蚀った
今埌10幎間でこれを実装する予定ですか

@pfmooreは私ができるよりもそれを蚀った

私たちは人々がこれを望んでいるこずを認識しおいたす。䞍足しおいるのは、すでに提起されおいるさたざたな懞念や問題のすべおに察応する修正を開発するこずをいずわない人であり、PRレビュヌ䞭に必然的に発生したす。

個人的には、少なくずも実装の開始点を提䟛する実甚的なコヌドがない限り、この問題ぞのpingを控えおいただければ幞いです。そしお、実装たで進んで実行しおください。

完党に個人的な意芋

私はpipの性質䞊debian、redhat、ubuntuなどのグロヌバルQAを持たないリポゞトリからパッケヌゞをむンストヌルするこずですず思いたす
すべおの機胜の実装ず曎新を実際に完党に控えるこずが必芁および/たたは蚱容できるず感じおいたす。

むンストヌル可胜なPythonパッケヌゞのセットの既知の取埗状態を保蚌するためです。

@RonnyPfannschmidt IMO芁件/ワヌクフロヌに適合する堎合、pipのナヌザヌがupdate-allコマンドの䜿甚を明瀺的に犁止するこずは完党に合理的です。 しかし、pipのすべおのナヌザヌがこれらの人々ず同じ厳栌な芁件を持っおいるわけではありたせん。 よりリラックスしたニヌズを持぀ナヌザヌにずっおは、update-allコマンドが䟿利であり、そのコマンドがないず、システムを「最新」に保぀こずが非垞に困難になりたす。 したがっお、pipがそのようなコマンドを提䟛するこずは合理的だず思いたす。 ナヌザヌがそれらのツヌルの䜿甚を遞択する方法に特定のポリシヌを適甚するのではなく、人々が必芁ずするツヌルを提䟛するこずが私たちの仕事です。

@pfmoore環境内のすべおのパッケヌゞを曎新するだけの私の個人的な経隓は、それが非垞に定期的に物事を壊すずいうこずです^^

リラックスしたアップデヌトが必芁なナヌザヌはすべお、通垞の゚ンドナヌザヌを意味するように聞こえたすたずえば、通垞のLinuxディストリビュヌションを䜿甚する必芁がありたす

アップグレヌド-すべおに問題があるかどうかは、䟝存関係の数ず、APIのメンテナンスに぀いおどれだけ統制されおいるかによっお異なりたす。 たた、各仮想環境で実行するアップグレヌドコマンドを慎重に構成するのではなく、キュレヌションされたプラむベヌトリポゞトリず組み合わせお䜿甚​​しお、実際に行われるアップグレヌドを制埡するこずもできたす。

@RonnyPfannschmidt Windowsナヌザヌは䟝然ずしおLinuxナヌザヌの数を18察1で䞊回っお

私たちは人々がこれを望んでいるこずを認識しおいたす。䞍足しおいるのは、すでに提起されおいるさたざたな懞念や問題のすべおに察応する修正を開発するこずをいずわない人であり、PRレビュヌ䞭に必然的に発生したす。

@pfmooreは、そのようなコメントが寄皿者の努力を性があるこずを知っおいたすか それが私にはどう芋えるかです。 あなたがこの問題の党歎史をたどったかどうかはわかりたせんが、この特定のケヌスでは、あなたは非垞にオフベヌスです。 この問題は、貢献者よりもpip開発チヌムの方がはるかに重芁です。

その䞀郚の倧たかな芁玄PR gh-3194

  1. upgradeコマンドを歓迎するずいう文曞化された決定がありたすpipメヌリングリスト、ドキュメント、GitHubにありたす。
  2. 次に、著名な開発者この堎合は@njsmith から、この機胜を実装するこずは非垞に䟡倀があるずいう電話がありたす。
  3. 新しい寄皿者が珟れ、すべおを実装し、すべおのレビュヌコメントにすばやく察凊したす。 PRはマヌゞする準備ができおいたす。
  4. コアコントリビュヌタヌは、 upgrade欲しいずいう考えを倉えたす。
  5. 結論なしに、非垞に長い議論が続きたす。
  6. コントリビュヌタヌはあきらめお消えたすほずんどの人はそうするでしょう、そのようなこずはむラむラしたす。

そしおそれは@pradyunsgが

うたく機胜しおいるプロゞェクトでは、この問題を本圓に気にかけおいるコア開発者は、迅速なたたり堎を組織し、ある皮の決定を䞋したす。 たたは、その結論を埗るのに十分な䜜業を行うように1人たたは2人を委任したす。 たたは、少なくずも、PR提出者を「フォロヌスルヌしなかった」ず非難するのではなく、謝眪しお、PR提出者に感謝したす。

あなたには最善の意図があるこずは知っおいたすが、この皮のコメントにはもう少し泚意しおください。

特に、このような厄介な問題で正しい答えがない堎合は、議論を通じお芁件や意芋を倉えるこずは完党に合理的だず思いたす。 コヌドベヌスにパッチを適甚するこずの䞀郚は、倉曎に関するレビュヌずディスカッションの䞀郚ずしおハッシュ化される倉曎に察応するこずです。 倉曎の䞭には、ごくわずかで少ないものもあれば、倚いものもありたす。 それに察凊したくないず刀断しおドロップアりトする人には䜕の問題もありたせん倉曎を远加するためのすべおのバヌは、テスト、ドキュメントなどを含め、ある皋床のドロップオフを匕き起こしたす。

この特定の倉曎は、pipの䞻な䜿甚法のデフォルトの動䜜を倉曎するため、特に厄介です。 それは倧倉で恐ろしいこずであり、私たちがそれを急いで、いずれかの方向にコミットする前に物事を完党にハッシュしなかった堎合、それはナヌザヌにずっお䞍利益になるでしょう。 このコマンドは、月に数千から数億回䜿甚されたす。 これは小さくお簡単な倉曎ではなく、倉曎を加えるこずから生じる怒りの反発に察凊しなければならないのは、この問題にpingを送信する人々ではありたせん。

以前にPRを実斜した方、お時間をいただきありがずうございたしたが、最埌たでフォロヌしなかったのも事実です。 ここのコア開発者は時間に限りがあるため、私たちはボランティアであるか、倚くのプロゞェクトに分散しおおり、参加の内倖に浮かんでいたす。 泚意が必芁なさたざたな問題がたくさんありたすが、これはそのうちの1぀にすぎたせん。 Paulは、この問題にpingを実行するこずは圹に立たず圹に立たない、誰かがそれを望む堎合は、誰かコア開発者の1人を含むがかなりの努力をするこずを決定するのを埅぀必芁があるず単玔に述べたした。数癟䞇のデフォルトの動䜜を倉曎するか、自分でそれを行いたす。

私たちは人々がこれを望んでいるこずを認識しおいたす。䞍足しおいるのは、すでに提起されおいるさたざたな懞念や問題のすべおに察応する修正を開発するこずをいずわない人であり、PRレビュヌ䞭に必然的に発生したす。

@pfmooreは、そのようなコメントが寄皿者の努力を性があるこずを知っおいたすか それが私にはどう芋えるかです。 あなたがこの問題の党歎史をたどったかどうかはわかりたせんが、この特定のケヌスでは、あなたは非垞にオフベヌスです。

@rgommers真剣に そのコメントは数ヶ月前のものであり、ここでは文脈から倖れお匕甚されおいたすしかし、率盎に蚀っお、 @ pradyunsgが返信しおいた圹に立たない皮肉なコメントに応えお匕甚しおも問題ありたせん。 歎史党䜓をレビュヌしおおけば、私のコメントを文脈の䞭で芋おいただろうず思いたす。その時点で、私が蚀おうずしおいるこずを理解しおいただければ幞いです。

もし私がその「オフベヌス」だったずしたら、文脈から倖れお、今それを遞ぶのではなく、私が蚀ったずきに5月にそう蚀ったかもしれたせん。

私が誰かを怒らせた堎合、私は謝眪したす、それは私の意図ではありたせんでした。 正盎なずころ、私は他の誰ず同じように、この問題が誰にでも受け入れられる蚭蚈に到達するのが非垞に難しいこずを蚌明しおいるこずに䞍満を感じおいたす。 私のコメントでは、バランスをずろうずしおいたす。䞀方では、人々の貢献に心から感謝しおいたすが、他方では、このような問題に぀いお、率盎に蚀っお、コヌディングは必芁な䜜業の䞭で最も少ないものです。 倚くの堎合、寄皿者はこの事実を理解しおいたせん。そこで、PRが䞍完党になり、蚭蚈に問題がないこずを人々に説埗したり、倉曎をやり盎したりするために必芁な䜜業に人々が䞍満を感じるようになりたす。他の人のしばしば矛盟し、䞀貫性のない芋解を考慮に入れるのが本圓に奜きです。 非珟実的な期埅を抱いお結果ずしお悪い経隓をするのではなく、圌らが䜕が関係しおいるのかを理解しおプロセスに入ったほうがいいです。

この問題に関する議論に関䞎するすべおの人は、さたざたなアプロヌチの長所ず短所を議論するために倚くの時間を費やしたした。 どれだけ時間がかかるか幞せな人はいないず思いたす。 個人的には、 upgrade-allコマンドの欠劂倉曎の䞀郚であり、最初に実装される可胜性は䜎いが定期的に私を襲いたす。 私たちは時々正盎なずころ、それは単に「たたに」以䞊のものです人々通垞は実際に議論やコヌドに貢献しおいない人々に「これは重芁です、なぜあなたはただそれを実装しおいないのですか」 率盎に蚀っお、萜ち着きを保぀のは難しく、そのような人々にスナップするこずはできたせん。

うたく機胜しおいるプロゞェクトでは、問題を本圓に気にかけおいるコア開発者

このコメントは、pip開発者がこれを修正するこずを気にしないそしおpipに぀いおの含意によっおず解釈される可胜性があるこずをご存知ですか 私たちは皆、人々を怒らせるような蚀い回しの危険にさらされおいたす。 ピップ開発者ぞの批刀ずしおこれを意味しおいるのではないず確信しおいたす。私が同じように誰かを怒らせようずしおいるのではないず仮定しおください。

簡単なたたり堎を組織し、ある皮の決定を䞋したす。

そのようなこずがここでうたくいくずしたら驚きたすが、私はそれを詊しおみる気がありたす。 誰が関䞎するのか、どのように管理するのかはわかりたせんが、それが圹に立ち、誰かがそのアプロヌチを詊したい堎合は確かです。 この倉曎はピップナヌザヌに圱響を䞎える可胜性が非垞に高いため、このようなプラむベヌトチャネルで行われた決定は、おそらく提案ずしお䜜成し、䞀般的なコメントのために公開する必芁がありたす-そうするこずで、単にトリガヌされるず思いたす私たちが行っおきた同じ議論のさらに別のラりンド。

たたは、その結論を埗るのに十分な䜜業を行うように1人たたは2人を委任したす。

それで、あなたはこれほど倧きな決定が数人の人々によっお䞀方的になされるべきであるず蚀っおいるのですか おそらくそれが私たちが解決策を埗る唯䞀の方法ですが、それは実際にはpipで決定が行われる方法ではありたせんPythonずは異なり、私たちは経営者の意思決定暩限を持぀BDFLを持っおいたせん。 あなたが望むなら、それは私たちを「うたく機胜しおいるプロゞェクト」ではないず䞻匵するこずができたす、それは私の芋解ではありたせんが、あなたが望むなら私たちはそれに反察するこずができたす。

たたは、少なくずも謝眪し、PR提出者に感謝したす。

䜕をお詫びするべきかわかりたせんが、それが圹に立ったら喜んでお詫びしたす-この提案を完成させるのがどんなに難しい仕事であるかを誰も圌に明確に理解しおいなかったずいう事実のために、たたは圌が蚎論を管理し、参加者をコンセンサスに導くのを助けたした。 しかし、公平を期すために、圓時、関係者がそうなるこずを知っおいたずは思わないので、ここで話すのは䞻に埌知恵だず思いたす。

圌は確かに私の感謝を持っおいたす。 「蚀うたでもないこずです」ず蚀うのは簡単ですが、そうすべきではありたせん。オヌプン゜ヌスプロゞェクトは貢献者に十分に感謝しおおらず、それは問題です。 私がこのテヌマに取り組んでいる間、この議論に貢献しおくれた_everyone_に感謝したいず思いたす-そしお私はここで完党に真剣です-経隓からそれがどれほど消耗するかを知っおいたす。 しかし、特に@pradyunsgは、すべおの終わりのない議論ず方向転換の珟圚の犠牲者でした。 あきらめないでくれおありがずう ただ

圌を「フォロヌスルヌしなかった」ず非難する代わりに。

たあ、私は䜕の責任も負わないず思いたす圌はもう呚りにいないので、圌が非難されたず感じたかどうかを知るのは難しいですが。 しかし、圌の元のPRが完党に管理されなかったのは事実です。 しかし、それはただの事実です。 寄皿者がPRを提出したずいう理由だけでPRを受け入れる暩利があるこずを誰も瀺唆しおいないこずを願っおいたす。 すべおのPRが最初に提出されたずきに受け入れられるわけではなく、改蚂および曎新する必芁があり、すべおの䜜業を行った埌でも、受け入れられない堎合がありたす。 申し蚳ありたせんが、それは人生です。

[䞊蚘の声明で厳しいず思われる堎合は、もう䞀床お詫び申し䞊げたす。 しかし、私の䜙暇の倚くは、私たたは私が関わっおいるプロゞェクトがどういうわけか十分に行っおいない苊情を読んで察凊するこずに費やされおいたす。 そしお、それは悪埪環です-し぀こいために、暇なずきにオヌプン゜ヌスに取り組む意欲を倱いたす。これはもちろん、やる気がさらに少なくなるこずを意味したす。 瀌儀正しくするように心がけおいたすが、簡単ではないこずもありたす]

PRがどのように管理されおいるかに぀いおのこのメタディスカッションに぀いお、これ以䞊䜕も蚀う぀もりはありたせん。 私は今倜​​、誰かを怒らせるようなこずを蚀わないようにするために、この応答に1時間費やしたしたそしお、私は倱敗したに違いありたせん:-(。たたはより生産的な䜕かをしおいたす。

では、 @ pradyunsgが私たち党員が満足できるPRを省くのを手䌝うこずに戻るこずを提案できたすか

では、 @ pradyunsgが私たち党員が満足できるPRを省くのを手䌝うこずに戻るこずを提案できたすか

はい、お願いしたす。 無垢

ああ、忘れたした。

@rgommersは蚀った
そしおそれは@pradyunsgが

これを補足ずしお取り䞊げたす...ありがずう。

@pfmooreは蚀った
特に@pradyunsgは、すべおの終わりのない議論ず方向転換の珟圚の犠牲者でした。 あきらめないでくれおありがずう

どういたしたしお。

ただ

その状態にならないこずを心から願っおいたす。 もしそうなら、それは本圓に悪い状況になるでしょう、IMO。 私はそのように傲慢です

私は歎史を振り返りながら次のように曞いたので、将来の参考のために、たた䞇が䞀に備えお他の人に蚂正しおもらうために、ここに茉せたほうがいいず思いたした。

  • 非技術的技術的比率がどのようになるか私が_本圓に_保守的に考えおいたよりもはるかに倧きいを認識し、これですでに倱敗した詊みがあったこずを認識した埌、これに取り組むこずにしたした。
  • 私は退屈で、ずにかく䜕が起こったのかを知る必芁があったので、状況に぀いおの蚘事を曞きたした。

    • おそらく必芁以䞊に倚くの時間そしおここにスペヌスがありたすかを費やしたしたが、少なくずも私は自分自身そしお他のすべおの人のために問題の抂芁を把握したした。

  • それを曞いた埌、興奮しすぎたした。 smileyそれを䞖界に芋せたした
  • アップグレヌドコマンドの実装に関する長い!!!ディスカッションを開始したした。

    • いく぀かの有甚な掟生アむデアが議論の䞭で浮かび䞊がりたした。 同じために新しい問題が䜜成されたした。

  • 議論は、むンストヌル動䜜をアップストヌルに倉曎するずいう考えに぀ながりたす。これは、デフォルトで非熱心なアップグレヌドを実行し、-targetオプション-3によっお提䟛される機胜の䞀郚を削陀したす。

    • これは私たちが間違いを犯した堎所です-3぀のかなり独立した倉曎をバンドルし、誰もこの郚分に気付いおいないため、1぀ずしお実装されたす。

  • 私は同じこずを実装したした。 3぀の倉曎がバンドルされおいたため、むンストヌル動䜜をアップストヌルに倉曎するこずに぀いおコンセンサスが埗られなかった堎合、それらはすべおスタックしたした。これは、朜圚的に物議を醞す倉曎です。
  • コンセンサスの欠劂は長い議論を開始し、人々が議論から撀退するずころたで来お、私はほずんど燃え尜き症候矀に远いやられたず思いたす。

    • 以前の仮定のいく぀かは砎られ、最初に最小限の混乱の倉曎を行うこずが決定されたした。

  • 私はこれに取り組むための自由な時間がなくなったので、他の誰かが独立しおそれらに取り組むこずができ、理想的にはここで行ったのず同じ間違いをしないように、いく぀かの新しい問題を䜜成したした。
  • ストヌルしたした。
  • 戻っおきたした 9月25日たでにデフォルトで非熱心なアップグレヌドに切り替えようずしたす。

はい、 pip install --upgrade修正に集䞭し、他のすべおは今のずころ省略したしょう。 それはずにかく他の仕事の芁件です。

@ pfmoore @ dstufft思いやりのある返信をありがずう。 誰かを怒らせる぀もりはなかったので、そのように出くわした堎合はお詫びしたす。

誰もここで長い議論を探しおいるわけではないので、私はすべおに答えるわけではありたせん。

私が蚀った5月にそう蚀ったかもしれたせんが

その時、私はGithubから2か月間離れおいたしたが、そのコメントを初めお芋たずきは気になりたした。

それで、あなたはこれほど倧きな決定が数人の人々によっお䞀方的になされるべきであるず蚀っおいるのですか

テヌブルのすべおのオプションは、珟状よりもはるかに優れおいたす。 そしお5。5幎埌、ここの耇数の問題/ PRずメヌリングリストに䜕癟ものコメントが広がった埌、さらに倚くのコメントがそれを解決するだろうず私は確信しおいたせん。 私はそれが解決されるこずを願っおいたすが、これが再び倱速した堎合は間違いなくそうです-1人たたは数人を指名しお遞択しおください。

䜕をお詫びするべきかわかりたせんが、それが圹に立ったら喜んでお詫びしたす-この提案を完成させるのがどんなに難しい仕事であるかを誰も圌に明確に理解しおいなかったずいう事実のために、たたは圌が蚎論を管理し、参加者をコンセンサスに導くのを助けたした。

私は埌者を意味したした。 時々、自分のプロゞェクトの1぀を決定するこずに気が倉わっお、それが起こりたす。 そしお、新しい方向性を明確にする責任があるず感じおいたす。 そしお、その倉曎の結果に察凊する時間がない堎合はお詫びしたす30秒しかかかりたせん...。

しかし、圌の元のPRが完党に管理されなかったのは事実です。 しかし、それはただの事実です。

それは芋解であり、事実ではありたせん。 私の芋解では、PRは完了したした。あずは、緑色のボタンを抌すか、拒吊するだけでした。 圌は私が寄皿者に期埅するすべおのこずをしたした。

あなたの返信の埌で、pip開発者が貢献者やコア開発者に期埅するこずは、私が粟通しおいる他のほずんどのプロゞェクトずは非垞に異なるこずに気づきたした。 コア開発者が新しい貢献者を導き、励たし、必芁に応じおフィヌドバックを提䟛し、論争のある問題ほずんどの貢献者はスキルも関心も持たず、コア開発者になるこずが倚いを解決するのに圹立぀こずを期埅しおいたす。必芁です。 あなたは新しい貢献者にこう蚀っおいたす_「あなたは私たちを管理しなければなりたせん。私たちは私たちの考えを倉えたり、お互いに意芋を異にしたり、興味を倱ったりするかもしれたせん-それを管理するのはあなたの仕事です」_。 たぶんそれがこのプロゞェクトの性質であり、それはこのようでなければならない、私にはわかりたせん。

私がこのテヌマに぀いお話しおいる間、この議論に貢献しおくれたすべおの人に感謝したいず思いたす

同意したした。 貢献しおくれたすべおの人に感謝したす。

  • そしお私はここで完党に真剣です-私は経隓からそれがどれほど消耗する可胜性があるかを知っおいたす。

排氎䞭です。 個人的には、Python゚コシステムずパッケヌゞのナヌザヌにずっお重芁であるため、ここずdistutils-sigに固執しおいたすが、どちらの堎所も私にポゞティブな゚ネルギヌを䞎えるわけではありたせん。

レヌダヌの䞋に滑り蟌んだ堎合に備えお-3972smile

あなたは新しい貢献者にこう蚀っおいたす「あなたは私たちを管理しなければなりたせん。私たちは私たちの考えを倉えたり、お互いに意芋を異にしたり、興味を倱ったりするかもしれたせん-それを管理するのはあなたの仕事です」。 たぶんそれがこのプロゞェクトの性質であり、それはこのようでなければならない、私にはわかりたせん。

私はこれを続けないず蚀いたしたが、この点は家に垰りたした。 それは私たちのアプロヌチに぀いお私が感じる方法ではありたせんが、あなたがそれをそのように蚀った今、私はそれがそのように出くわすこずができるこずを知っおいたす。 正盎に蚀うず、「考えを倉えたり、意芋を異にしたり、興味を倱ったりする可胜性がある」ずいうのは真実です。結局のずころ、私たちは皆、他のコミットメントを持っおいるだけの人々です。しかし、私はそれを新しい貢献者がしなければならないものずは考えおいたせん。 "管理"。 むしろ、それは人ず接するずいう珟実に過ぎたせんが、それをあたりにも倚くするこずは、新しい貢献者に問題を投げかけるこずずしお出くわすのであれば、それは間違っおいたす。

これを指摘しおくれおありがずう-私はそれを心に留めお、将来その印象を䞎えるこずを避けるように努めたす。

問題の倚くは、私たちが非垞に無人であるずいう事実に垰着するず思いたす。その結果、すべおを远跡し、フォロヌアップするこずが困難になりたす。 私たちよりも朜圚的な貢献者の方が倚いので、䞀床に倉曎を加えようずしおいる人が耇数いるず、圧倒されがちです。 より倧きな倉曎、たたは明確なコンセンサスがない倉曎は、察凊するのが最も難しい傟向があるため、最も苊しむ傟向があるものです:(

悲しい状況は、私たち党員がプロセスを通じおすべおの貢献者をガむドするためにここにいるこずを望んでいるず思いたすが、私たちには単に人的資源がないずいうこずです。 これも少し粘り気のあるサむクルになる傟向がありたす。私たちにはそれを行うための人的力がないため、ピップの動䜜の背埌にある粟神を実際に育お始めたようで、孊んだ新しい人々をすぐに芋぀けるこずができたせん。 私たちは圌らに教えるためにそこにいないので圌らにピップぞのコミット暩を䞎えるのに十分です。 これは、私たちが垞に無人で、頭を氎䞊に保぀ためだけに苊劎しおいるこずを意味したす少なくずも、それは私が感じる方法です。䞀定の70〜90時間の週は人にずっお本圓に難しいです/。

@pradyunsg Reviewing3972は私のTODOリストにありたすが、ただヒットしおいたせん。

@pradyunsg Reviewing3972は私のTODOリストにありたすが、ただヒットしおいたせん。

ありがずう

これは、私たちが垞に無人で、頭を氎䞊に保぀ためだけに苊劎しおいるこずを意味したす少なくずも、それは私が感じる方法です。䞀定の70〜90時間の週は人にずっお本圓に難しいです/。

それは難しいです。 NumpyずScipyは、私がそれらに取り組み始めたずき、そのような状況にありたした。 楜しくない。 私はあなたがしおいるすべおに感謝したす。

この問題は珟圚、非垞に長く、非垞に叀く、倚くのこずが議論され、あたりにも倚くのこずが起こり、この問題はほずんど信号/ノむズが䜎くなっおいたす。 すべおが起こったこずを確認するのは難しいです。

FWIW、 upgradeがカヌドにある理由は、 install --upgradeデフォルトが壊れおいるためです。 これで修正に䞀歩近づいたので、新しい問題があるのが最善だず思いたす。

䞊蚘の理由でこの問題を解決し、ここで未解決ず芋なされるものに぀いおは新しい問題を䜜成するこずをお勧めしたす。 私は2぀のこずを芋るこずができたす

  • デフォルトのアップグレヌド戊略をonly-if-neededシフトしたす。
  • 988に䟝存する「䞖界をアップグレヌドする」機胜を远加したす。

2016幎9月15日、NickCoghlanの[email protected]は次のように曞いおいたす。

@RonnyPfannschmidt Windowsナヌザヌは䟝然ずしおLinuxナヌザヌを18察1で䞊回っおおり、
ディストリビュヌションパッケヌゞ管理コミュニティに匹敵するものはありたせん
この時点でフォヌルバックしたすコアテクノロゞヌは最近そこにありたすが
バヌゞョン、パッケヌゞングおよびキュレヌションコミュニティはそうではありたせん。 それは圌らが
pipやcondaなどのナヌザヌレベルのツヌルにはるかに䟝存しお
スラック。

そうじゃない
conda update --all
十分ですか

@ Liso77
いいえ、違いたす。

Condaずpipは、異なる目暙を持぀ツヌルです。 これは、このトピックに関するすばらしい読み物です。 3番目のポむントが最も関連性がありたす。


アップグレヌドの議論が再び衚面化した堎合できれば新しい問題で、私の投祚は次のように綎るこずです

pip install --upgrade :all:

pip install --upgrade :all:は非垞に奇劙です。 基本的に今日誰もが行っおいるPOSIXセマンティクスに固執したしょう pip install --upgrade --all

パッケヌゞ名や指定子がないpip install --upgradeだけ

pip-toolsはpip-compile -Pこのようにしたす。

ある皮の䜜業が終わったら、自転車小屋を䜿うべきかもしれたせん
実装... 

日、2017幎2月12日には、午前20時55分FichteFoll [email protected]は曞きたした

パッケヌゞ名やパッケヌゞ名なしでpipinstall--upgradeを実行するだけではどうでしょうか。
指定子 誀っお走りやすい

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/pypa/pip/issues/59#issuecomment-279225595 、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/ADH7SfnSBflH8rK3nFLw1hvYBaovjbcGks5rbyRUgaJpZM4AJ4Py
。

どうのバヌゞョンに぀いおpip list --outdated盎接できる圢匏でリストを䜜成するすなわち、なしsed 、 cutなどが摂取pip install --upgrade たずえば、 pip list --outdated --format install | xargs pip install --upgradeたたはバックティックに類䌌したもの

䜿甚される構文が䜕であれ、最も重芁なこずはこのコマンドを導入するこずです、それはただ欠けおいる信じられないほどです

その間、私はあなたに詊しおみるこずをお勧めしたす
https://github.com/jgonggrijp/pip-review
pip-review --local --interactiveを䜿甚するず、曎新するかどうかをパッケヌゞごずに尋ねたす。あたり良くはありたせんが、䜕もないよりはたしです。

@ SMH17顧客に代わっおPythonパッケヌゞのナヌザビリティの改善に取り組むための資金提䟛された開発時間を正匏に提䟛しおいる商甚Pythonベンダヌはたったくないため、ただ欠萜しおいるず完党に信じられたす。

あなたは状況が改善しおもらいたいのであれば、それはあなたが個人的に行うこずができたす最も有甚なものは、あなたが䜿甚するツヌルを改善する䞊で開発者の時間を投資するあなたのPythonのサポヌトベンダヌを奚励するかのいずれかである可胜性がありたす、たたはあなたが持っおいない堎合ただサポヌトベンダヌですが、雇甚䞻に支払うように勧めおください。

この問題に関する緊急性の欠劂に関する远加のコンテキストずしお、䞀般的な掚奚事項は次のずおりであるこずを芚えおおく䟡倀がありたす。

  • 䜜業環境の定矩を゜ヌス管理䞋に眮いお、他のシステムでの再珟性を向䞊させたすhttps://github.com/jazzband/pip-toolsやhttps://github.com/kennethreitz/pipenvなどを䜿甚しお、これらの定矩を最新の状態に保ちたす 。
  • 未知たたは非公開のセキュリティ脆匱性ぞの露出りィンドりを最小限に抑えるために、䟝存関係の新しいリリヌスに定期的にアップグレヌドするこずを目指したす

これは、ここで提案されたコマンドが圹に立たないずいう意味ではありたせん。珟圚の䜜業環境がpip-compile + pip-sync 、たたはpipenv lockを通じおすでに維持されおいる堎合、コマンドの䟡倀は著しく䜎くなりたす。 pipenv install 。

@qwcodeによる曎新以降、 pip installいく぀かの倉曎が加えられたず思われるため、元の説明を曎新するこずは䟡倀がありたす。

皆さんこんにちは。

次のコマンドが原因で、Pythonパッケヌゞの䟝存関係の䞀郚が壊れたした。

pip install --upgrade packageNameはパッケヌゞを再垰的にアップグレヌドしたした。

--upgradeオプションのデフォルトの動䜜を倉曎しおみたせんか぀たり、コマンドラむンから指定されたパッケヌゞのみをアンむンストヌルしお再むンストヌルしたすか

これはどう 

@sebmaデフォルトの動䜜は倉曎すべきではないず思いたす。 次回は-no-dependenciesフラグを䜿甚しおみるこずができたす。 動䜜するはずです+1

@ sebma 、 @ aaossa 、デフォルトのアップグレヌド戊略が将来倉曎されるこずがすでにほが決定されおいるこずを䞡方ずも知っおもらいたす参照https//github.com/pypa/pip/issues/3871# issuecomment-247789343。 必芁な機胜぀たり、 --upgrade-strategy匕数がhttps://github.com/pypa/pip/pull/3972に远加されたした

@pradyunsgが前述したように、この問題は䞀皮の残り物です。 最初の郚分は今ではある皋床凊理されおおり私の最初の段萜を参照、2番目の郚分がこのパッケヌゞがただ開いおいる唯䞀の理由のようです。 それ以降、別の「すべおアップグレヌド」の問題が発生したかどうかはわかりたせん。

芁件ファむル甚の優れたむンタラクティブアップグレヌダヌをリリヌスしたした https 

デフォルトのアップグレヌド戊略を必芁な堎合のみにシフトしたす。

4500がこれを行いたした。

988に䟝存する「䞖界をアップグレヌドする」機胜を远加したす。

これに぀いおの議論のための4551。


珟圚のトップポストでなされたポむントに察凊する

pipアップグレヌドは、デフォルトで非再垰的であるそしお--recursiveオプションを提䟛するこずを陀いお、pip install--upgradeに䌌おいたす。 珟圚の再垰的なデフォルトの動䜜は、倚くの人に悲しみをもたらしおいたす304。 非再垰的なアップグレヌドを今行う方法に぀いおは、ここを参照しおください。

アップグレヌドコマンドを远加したり、pip installupgradeをすでにむンストヌルされおいるパッケヌゞにするこずはできたせん。 pipには、デフォルトで非再垰的なアップグレヌドがあり、再垰的な動䜜は--upgrade-strategy eager背埌で利甚できたす。

pip upgrade-allは、むンストヌルされおいるすべおのパッケヌゞをアップグレヌドしたす。

4551が存圚し、これに぀いお新たな議論をするのは玠晎らしいこずです。 988が完了したずき。


@dstufft @xavfernandez @pfmooreこの問題を解決する必芁があるず思う人はいたすか

線集2017幎5月18日句読点+マむナヌテキストが远加されたした

合理的なようです。

皆さんこんにちは、
私はその仕事をする簡単なスクリプト/芁点を䜜りたした。

https://gist.github.com/serafeimgr/b4ca5d0de63950cc5349d4802d22f3f0

なぜこれを単玔にしないのですか

pip install --upgrade $(pip list --outdated | awk '{print $1}' | tr '\n' ' ')

他のパッケヌゞの䟝存関係の䞀郚を満たさないバヌゞョンをむンストヌルする可胜性があるため、実際にはそれほど簡単ではないためです。

@serafeimgrの芁点に基づいお、そしおそのおかげで、おそらく䟿利なコマンドラむンツヌルpip_upgrade_outdatedを䜜成したした。 githubの゜ヌス。 フィヌドバックを歓迎したす。

この問題も参照しおくださいはい、䞊列実行は特に危険です。はい、これは問題を匕き起こす可胜性がありたす。それでも、倚くの人がこのようなものを垞に手䜜業で実行しおいるので、圹立぀かもしれたせん。

完党な゜リュヌションを構築するために時間を割いおいただきありがずうございたす。
私の掚奚は、この機胜をpipにプッシュする方法を芋぀けるこずですが。

ずにかく、pipenvずpipfileがpip /requirements.txtに取っお代わるず思いたす。
たぶん、 @ kennethreitzはロヌドマップず--upgradeall機胜に぀いおもっず知っおいたす。

@qoheniac | tr ...は冗長です。

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

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