Подтвердить что ты не робот

Принуждение `pip` перекомпилировать ранее установленный пакет (numpy) после переключения на другой двоичный код Python

Этот вопрос представляет собой вопрос о моей конкретной проблеме (который, как я выяснил, обходит вокруг, так что это не проблема), как и в отношении общего процесса, который я использую.


Настройка (часть, которая работает):

У меня есть Python 2.7.9, установленный локально на моем Ubuntu 14.04, и у меня есть virtualenv, в котором я его запускаю. Все очень сильно отделено от "системного" Python, к которому я не прикасаюсь.


Часть, которую я сделал:

Все началось достаточно хорошо, с моим Python и всеми работающими библиотеками. Например, я также pip установил numpy 1.10.1, он скомпилировался некоторое время, тогда он работал отлично.

Проблема:

Проблема заключается в том, что по причинам, не зависящим от моего контроля, мне пришлось перестроить python с включенным ucs4, то есть я установил его с помощью

./configure --enable-unicode=ucs4

После этого я также удалил все библиотеки и переустановил их с помощью pip. Тем не менее, похоже, что библиотека numpy не была должным образом удалена, потому что она была установлена ​​на этот раз мгновенно, и когда я попытался импортировать numpy в мой новый Python, у меня появилось сообщение об ошибке, указывающее, что numpy был скомпилирован с помощью ucs2 - включен Python.

Эта гипотеза довольно прочная, так как я попытался затем pip install numpy==1.9.3. Установка еще раз заняла много времени, и она произвела версию numpy, которая работает на новом ucs4 включенном Python.

Теперь, мой вопрос:

Как я могу заставить процесс удаления numpy удалить все следы старого numpy?


Edit:

Я также попытался вручную удалить numpy, удалив его из каталога virtualenv site-packages. После удаления import numpy возвратил ImportError, как ожидалось. Затем я переустановил его (pip install numpy), и он вернулся с той же ошибкой ucs2.

Изменить 2:

Полный sys.path, видимый моим виртуальным Python,

['',
 '/home/jkralj/.virtualenvs/work/lib/python27.zip',
 '/home/jkralj/.virtualenvs/work/lib/python2.7',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/plat-linux2',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/lib-tk',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/lib-old',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7.9/lib/python2.7',
 '/usr/local/lib/python2.7.9/lib/python2.7/plat-linux2',
 '/usr/local/lib/python2.7.9/lib/python2.7/lib-tk',
 '/home/jkralj/.virtualenvs/work/lib/python2.7/site-packages']

Кроме того, может быть важно отметить, что установка /usr/local/lib/python2.7.9/ для python не содержит.

4b9b3361

Ответ 1

Проблема решается путем удаления numpy (или любого другого проблемного пакета), а затем выполняется

pip install numpy --no-cache-dir

чтобы предотвратить простое удаление кэшированной установки и повторение ее.

Ответ 2

Вы можете использовать --no-binary и --ignore-installed для перекомпоновки пакета следующим образом

pip install --user --force-reinstall --ignore-installed --no-binary :all: PackageName