pipが必要なパッケージをアンインストールするだけです!パッケージがパッケージの特定のバージョンを明示的に宣言している場合、pipはそのパッケージをアンインストールできないはずですが、そうではありません。考えてみましょう:ピップが必要なパッケージをアンインストールするのはなぜですか?
$ pip list | grep bar
bar 1.0
$ cat setup.py
from setuptools import setup, find_packages
def do_setup():
setup(
name='foo',
description='the foo package',
license='MIT',
version='1.0',
install_requires=[
'bar==1.0',
],
)
if __name__ == "__main__":
do_setup()
$ pip install .
Processing /Users/williamp/examples/pip/foo
Requirement already satisfied (use --upgrade to upgrade): foo==1.0 from file:///Users/williamp/examples/pip/foo in /Users/williamp/tmp/virt/lib/python2.7/site-packages
Requirement already satisfied: bar==1.0 in /Users/williamp/tmp/virt/lib/python2.7/site-packages (from foo==1.0)
$ cd ../bar
$ pip install dist/bar-1.1.tar.gz
Processing ./dist/bar-1.1.tar.gz
Building wheels for collected packages: bar
Running setup.py bdist_wheel for bar ... done
Stored in directory: /Users/williamp/Library/Caches/pip/wheels/bf/d3/68/6016190bb2084f62ba1107c63bea948f4cfbb2c129fa0cb102
Successfully built bar
Installing collected packages: bar
Found existing installation: bar 1.0
Uninstalling bar-1.0:
Successfully uninstalled bar-1.0
Successfully installed bar-1.1
私がパッケージfooをバー== 1.0の明示的な依存関係でインストールされている状況で巻き上げているようですが、ピップはバー1.0をアンインストールし、システムが不安定な状態になりました。いくつかのシンプルな設定オプションは私がこれをしないように伝えるpip
に渡すことができますか?
私は依存関係のないパッケージをインストールしたくありません!私はpipに依存してすべての依存関係が確実にインストールされるようにしたい。 –
あなたが探しているものを達成するためのきれいな方法はないようですが。これは、pipがパッケージと同じ名前の依存関係をインストールしようとしているという事実に関連しているようです。 https://github.com/pypa/pip/issues/304。彼らはあなたがピップチェックを実行する必要がまだインストールされていることを確認するように見えます。 –