Этот вопрос представляет собой вопрос о моей конкретной проблеме (который, как я выяснил, обходит вокруг, так что это не проблема), как и в отношении общего процесса, который я использую.
Настройка (часть, которая работает):
У меня есть 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 не содержит.