Мне нужно использовать python на большом сервере, где у меня нет прав root.Я хочу использовать более новую версию numpy, чем та, которая установлена глобально на машине.virtualenv
предназначен именно для этой цели, и я создаю свою виртуальную среду и активирую ее с помощью следующих команд:
virtualenv my_personal_python
source my_personal_python/bin/activate
Затем устанавливаю новую версию библиотеки, в которой я заинтересован, используя
pip install numpy==1.6.0
Проблема в том, что когда я сейчас импортирую numpy, он все равно импортирует устаревшую глобальную версию, а не ту, которая установлена в каталоге my_personal_python/lib/python2.6/site-packacges
виртуальной среды.
Я уже знаю однувозможное решение - флаг --no-site-packages, например:
virtualenv --no-site-packages my_personal_python
Когда я использую этот флаг, тогда импорт ведет себя так, как я хочу.Но я не хочу использовать этот флаг, потому что я не хочу переустанавливать все пакеты локально, я просто хочу переопределить пару из них.
(я использую python 2.6, virtualenv 1.6.1, и переменная PYTHONPATH на моем компьютере не установлена.)
Обновление Даже если я добавлю каталог site-packages из виртуальной среды в начало пути python, numpy делаетне импортируются из этого местоположения (хотя другие пакеты импортируются из этого местоположения).Может быть, эта проблема характерна для numpy и не встречается с пакетами вообще.