我意识到我有一个过时的numpy版本:
$python Python 2.7.10 (default,Oct 23 2015,18:05:06) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin Type "help","copyright","credits" or "license" for more information. >>> import numpy as np >>> np.version.full_version '1.8.0rc1'
我试图更新它,但由于某些原因我无法安装在整台机器上:
$sudo pip install -U numpy Password: Downloading/unpacking numpy from https://pypi.python.org/packages/dd/9f/cd0ec9c50e4ed8650901ad4afde164e5252b6182a9e0c7bff5f8b4441960/numpy-1.11.1.zip#md5=5caa3428b24aaa07e72c79d115140e46 Downloading numpy-1.11.1.zip (4.7MB): 4.7MB downloaded ... Found existing installation: numpy 1.8.0rc1 Uninstalling numpy: Cleaning up... Exception: Traceback (most recent call last): File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/basecommand.py",line 134,in main status = self.run(options,args) File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/commands/install.py",line 241,in run requirement_set.install(install_options,global_options,root=options.root_path) File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py",line 1294,in install requirement.uninstall(auto_confirm=True) File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py",line 525,in uninstall paths_to_remove.remove(auto_confirm) File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py",line 1639,in remove renames(path,new_path) File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/util.py",line 294,in renames shutil.move(old,new) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py",line 302,in move copy2(src,real_dst) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py",line 131,in copy2 copystat(src,dst) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py",line 103,in copystat os.chflags(dst,st.st_flags) OSError: [Errno 1] Operation not permitted: '/tmp/pip-fajcj_-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info' Storing complete log in /Users/csaftoiu/Library/Logs/pip.log
好的,我只需安装到–user然后:
$pip install -U --user numpy ... Successfully installed numpy
但版本没有更新!
$python Python 2.7.10 (default,"credits" or "license" for more information. >>> import numpy as np >>> np.version.full_version '1.8.0rc1'
安装版本在哪里?
解决方法
根据
the Python docs,这是使用“用户方案”安装:
Files will be installed into subdirectories of 07001 (written as userbase hereafter).
您可以看到这样的USER_BASE值:
$python -c "import site; print(site.USER_BASE)" /Users/csaftoiu/Library/Python/2.7
我发现在我的机器上,这是在sys.path上,但是它出现在全局安装目录之后.
我通过将它添加到我的〜/ .bash_profile来解决它:
# add user base to python path export PYTHONPATH=$(python -c "import site,os; print(os.path.join(site.USER_BASE,'lib','python','site-packages'))"):$PYTHONPATH
现在确实加载了最新版本:
$python Python 2.7.10 (default,"credits" or "license" for more information. >>> import numpy >>> numpy <module 'numpy' from '/Users/csaftoiu/Library/Python/2.7/lib/python/site-packages/numpy/__init__.pyc'> >>> numpy.version.full_version '1.11.1' >>>