pipパッケージをローカルではなくグローバルにインストールするにはどうすればよいですか?

pip3を使ってflake8パッケージをインストールしようとしているのですが、あるローカルロケーションにすでにインストールされているため、インストールを拒否しているようです。

グローバル(システムレベル)に強制的にインストールするにはどうすればよいですか?

pip3 install flake8
Requirement already satisfied (use --upgrade to upgrade): flake8 in ./.local/lib/python3.4/site-packages

なお、私はDebian、OS X、Windowsでも動作するような汎用的なソリューションを希望しており、どのようなプラットフォームでも使用できるようなものであれば、自分で保存先を指定する必要はありません。

なぜか、私がすでに--userを指定したかのような挙動をするのですが、私の場合は指定していません。

パッケージをグローバルにインストールするには、まずパッケージを削除して、この後再度インストールするしかありませんでした。どういうわけか、pip(8.1.1)は、ローカルにパッケージが存在する場合、グローバルにインストールすることを拒否しているようです。

免責事項:実験中に仮想環境を使用したり傷つけたりすることはありません。

質問へのコメント (2)

sudoH`フラグを付けて試してみてはいかがでしょうか?これでうまくいくはずです。

sudo -H pip install flake8

通常の sudo pip install flake8 は、自分のホームディレクトリを使おうとします。H`はシステムのホームディレクトリを使用するように指示します。詳細は https://stackoverflow.com/a/43623102/ にあります。

解説 (2)

virtualenv`]1を使用していますか?使っている場合は、virtualenvを無効にしてください。使用していない場合は、すでに広く(システムレベルで)インストールされています。パッケージのアップグレードをお試しください。

pip install flake8 --upgrade
解説 (1)

多分、--force-reinstallが効くと思いますが、そうでなければ、--ignore-installedが効くはずです。

解説 (0)

私は実際にあなたの問題を見ません。 グローバルには、python3パスのサイトパッケージフォルダーにあるパッケージがあります。

ローカルで使用する場合は、virtualenvを構成し、アクティブ化された仮想環境でパッケージを再インストールする必要があります。

解説 (0)