pip を使用してパッケージをローカルにインストールしようとしています~/.local
。問題は、(古いバージョンの) パッケージが既にシステム上でグローバルに利用可能になっていることです。グローバル python パッケージ ディレクトリがmyになくPYTHONPATH
ても、パッケージの要件が満たされていると考えて、pip はインストールを拒否します。これは、使用していないため解決策が適用されないことを除いて、ここで説明されている問題に似てsudo
います: pip - 要件は既に満たされていますか?
私が行った場合:
pip install --user numpy
それは言います:
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python2.7/dist-packages/numpy-1.6.2-py2.7-linux-x86_64.egg
しかし、/usr/local/lib/...
私の中にはありませんPYTHONPATH
。入っているのは だけPYTHONPATH
です~/.local
。
私がやろうとすると:
pip install --user --upgrade numpy
numpy をダウンロードしてコンパイルすると、 --userフラグにもかかわらず、グローバル インストールを行っていると見なされ、次のようになります。
Installing collected packages: numpy
Found existing installation: numpy 1.6.2
Uninstalling numpy:
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/basecommand.py", line 107, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/commands/install.py", line 261, in run
requirement_set.install(install_options, global_options)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/req.py", line 1162, in install
requirement.uninstall(auto_confirm=True)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/req.py", line 495, in uninstall
paths_to_remove.remove(auto_confirm)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/req.py", line 1492, in remove
renames(path, new_path)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/util.py", line 273, in renames
shutil.move(old, new)
File "/usr/lib/python2.7/shutil.py", line 300, in move
os.unlink(src)
OSError: [Errno 13] Permission denied: '/usr/bin/f2py'
これはどのように修正できますか?--user
フラグが渡されたときに、グローバル権限を必要とする何かをしようとする理由がわかりません。
~/.local
システム上の他のすべてを使用して無視するようにpipに指示する方法はありますか? (virtualenv は使いたくない! ここでは不要です。複数の環境は必要ありません。1 つのみです。)