используя pip для локального размещения пакетов, несмотря на удовлетворенные глобальные требования

Я пытаюсь использовать pip для установки пакета локально в ~/.local . Проблема в том, что пакет (в более старой версии) уже доступен по всему миру в системе. Несмотря на то, что глобальный каталог пакетов python не находится в моем 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 и компилирует его, а затем думает, что я делаю глобальную установку, несмотря на флаг -ser, и я получаю:

 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 и игнорировать все остальное в системе? (Я не хочу использовать virtualenv! Здесь нет необходимости, я не хочу несколько сред, только один.)

One Solution collect form web for “используя pip для локального размещения пакетов, несмотря на удовлетворенные глобальные требования”

Цитируя Маркуса Смита (сторонник пипса):

Если вы считаете, что глобальный сайт устарел, и хотите получить последнюю информацию на сайте пользователя, используйте:
pip install --upgrade --user SomePackage

Поскольку (…) пакет (в старой версии) уже доступен в глобальном масштабе в системе, вы должны использовать опцию --upgrade в соответствии с замечанием Маркуса. Удаление пакета numpy системы, вероятно, является ошибкой в ​​версии используемого вами пипа (1.2.1). Попробуйте текущую версию, так как многие проблемы, связанные с опцией --user были исправлены в версиях 1.3 и 1.4

РЕДАКТИРОВАТЬ

Маркус Смит указывает на конкретную проблему в своем последнем комментарии:

pip 1.3 имеет # 705, что имеет решающее значение для использования –user и –upgrade вместе.

  • установить pyopencv с pip на Mac OS X
  • Самый простой способ автоматической загрузки необходимых модулей в Python?
  • Зачем использовать pip над easy_install?
  • Как выполнить (безопасную) команду оболочки bash в setup.py?
  • 'pip3 --version' не работает с SyntaxError
  • Ubuntu + virtualenv = беспорядок? virtualenv ненавидит dist-пакеты, хочет сайты-пакеты
  • Как easy_install плагин для яиц и загрузить его без перезапуска приложения?
  • python setuptools install_requires игнорируется при переопределении cmdclass
  •  
    Interesting Posts for Van-Lav

    App Engine (python) пропускает промежуточное программное обеспечение webapp (например, Appstats), но отлично работает на dev-сервере

    Как искать подпапки с помощью модуля glob.glob в Python?

    Добавление комментариев к YAML, созданных с помощью PyYaml

    Вызовите Python или Lua из C ++, чтобы оценить выражение, вычисляя неизвестные переменные только в случае необходимости

    Python: int (3.0) = 2

    В возвышенном, почему def run работает в одном случае, а не в другом случае, и как я могу заставить его работать?

    Понимание списков списков

    следует ли мне позвонить close () после urllib.urlopen ()?

    py2exe не находит всех зависимостей

    Как найти конечные точки бинарного скелета в OpenCV?

    Регулярные выражения Python – лимитированные результаты?

    Можно ли настроить проверку ошибок Pylint?

    Python 3 datetime.fromtimestamp не работает на 1 микросекунду

    С заявлением в python возвращается объект None, хотя метод __init__ работает

    Компилятор Python для простого языка для java vm code algorithm

    Python - лучший язык программирования в мире.