私のコンピュータに複数のPythonがありますか?そのうちの1つを削除する方法は?

私のコンピュータに複数のPythonがありますか?そのうちの1つを削除する方法は?

Pythonでnumpyバージョンが更新されないという問題がありましたpip install - U numpyhttps://stackoverflow.com/questions/26390895/why-isnt-pip-updating-my-numpy-and-scipy

したがって、私のコンピュータに複数のシルクヘビがあるかどうか疑われます。

実行すると、which -a python以下が返されます。

/usr/bin/python
/bin/python

これは私のコンピュータに2つのPythonがあることを意味しますか?これが本当なら、そのうちの1つを削除したいと思います。私は努力したyum remove python。しかし、走っている間も、2匹のシルクヘビが見られましたwhich -a python

答え1

which python実行ファイルのみを教えてください走るコマンドを使用してくださいpython。つまり、指定しない限り、通常は各引数に対して1つの結果を返します。-aこの場合、環境変数のすべてのディレクトリを検索します$PATH。ただし、すべての場合で同じコマンドですpython

Pythonのバージョンが何人かを知りたい場合インストール済みシステムでは、またはいずれかを使用することをお勧めしlocate /python | grep /binます。ls -l /usr/bin/python*yum --showduplicates list python

両方pythonのインスタンスでは、そのうちの1つが[シンボル]リンクである可能性が高くなりますwhich -a python | xargs ls -li。特定のバージョンのPythonを削除するには、yumコマンドラインでそのバージョン番号を指定する必要があります(例:)yum remove python-2.7.2.el5s2

編集する:のようにマットデム/binこれはFedoraのシンボリックリンクであることが知られています/usr/bin。したがって、これらの場所からPythonを削除することはできません。rmそれ以外の場合、Pythonはまったく削除されます。この場合、-iinの引数は、両方のPythonインスタンスが同じinodeを持っていることを示します。lswhich -a python | xargs ls -li

そうではありません。必須パッケージマネージャの目的は、依存関係の要件に基づいてバージョンを完全に抽出することであるため、バージョンごとのパッケージを手動で削除することです。特定のバージョンがインストールされている場合は、その理由があります。あるパッケージを削除すると、他のパッケージも削除できます。

最後に、ディストリビューションのパッケージマネージャを使用して、パッケージとその依存関係、特にディストリビューションのリポジトリに属する​​パッケージをインストールする必要があります。これが不可能でない限り。私が間違っているかもしれませんが、いくつかの主要なパッケージを更新しようとすると、pipパッケージマネージャは混乱して手動で満たす依存関係を混乱させる可能性があります。 (実際にはその逆です。pip依存関係を管理することは汚れている可能性がありますyum。)

答え2

すべての最新のFedoraバージョンには/binシンボリックリンクがあります/usr/bin。つまり、/bin を見ると、実際には /usr/bin にリダイレクトされます。しかし、両方現れるもの$PATH(おそらくクリーンアップする必要がある)は、which -a python同じバイナリを効果的に取得する2つの方法です。

したがって、ここに問題はありません。

(ただし、pipとrpm(yum)のインストールを混ぜてインストールすることに注意してください。できる混乱した結果を提供し、冗長バージョンをインストールできます。 )

答え3

みんなありがとうございます。問題が解決しました。私のコンピュータにはpython3.3とpython2.7があります。 yumの削除python3を介してpython3.3を削除しました。

numpyの問題を追加することで修正されました。

export PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.7/site-packages/

到着する./bashrc

関連情報