This question is as much a question about my particular problem (which I sort of found a work-around, so it's not a burning issue) as it is about the general process I am using.
I have Python 2.7.9 installed locally on my Ubuntu 14.04, and I have a virtualenv in which I am running it. Everything is very much separated from the "system" Python, which I am not touching.
It all started well enough, with my Python installed and all libraries running. For example, I also pip
installed numpy 1.10.1, it compiled for a while, then it worked just fine.
The problem is that for reasons beyond my control, I had to rebuild the python with ucs4
enabled, that is I installed it using
./configure --enable-unicode=ucs4
After doing this, I also uninstalled all libraries and reinstalled them using pip. However, it seems that the numpy library was not properly uninstalled because it installed instantly this time, and when I tried to import numpy
into my new Python, I got an error message indicating that the numpy was compiled with the ucs2
-enabled Python.
This hypothesis is pretty solid, since I tried then to pip install numpy==1.9.3
. The installation once again took a long time, and it produced a numpy version that works on the new ucs4
enabled Python.
How can I get the numpy uninstallation process to delete all traces of the old numpy?
Edit:
I also tried to manually remove numpy by deleting it from my virtualenv site-packages
directory. After deleting, import numpy
returned an ImportError
as expected. I then reinstalled it (pip install numpy
) and it came back with the same ucs2
-related error.
Edit 2:
The full sys.path
seen by my virtualenv Python is
['',
'/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']
Also, it might be important to mention that the /usr/local/lib/python2.7.9/
installation of python does not have numpy installed.
答案 0 :(得分:25)
您可以使用--no-binary
和--ignore-installed
重建包,如下所示
pip install --user --force-reinstall --ignore-installed --no-binary :all: PackageName
答案 1 :(得分:17)
通过pip卸载numpy(或任何其他麻烦的包),然后运行
来解决问题pip install numpy --no-cache-dir
防止pip简单地进行缓存安装并重复它。