在我升级到El Capitan后,Python 2.7无法安装/升级/卸载某些软件包,但同时,它仍适用于其他软件包.
下面(结束)是我尝试升级numpy时得到的错误消息.当我尝试卸载它时,同样的错误也会引发.
我试过pip install --user或pip install --ignore-installed numpy,但都不行.即使它说numpy已成功安装,版本仍保持不变,并没有真正升级.
我知道其他解决方案可能是使用brew重新安装python,但我想尽可能避免使用多个版本的Python.任何帮助,将不胜感激.
- - - - - - 错误信息 - - - - - -
40:523:执行错误:目录'/ Users/ - /Library/Caches/pip/http'或其父目录不归当前用户所有,并且缓存已被禁用.请检查该目录的权限和所有者.如果用sudo执行pip,你可能需要sudo的-H标志.
弃用:已弃用卸载已安装的distutils项目(numpy),将来的版本将删除该项目.这是因为卸载distutils项目只会部分卸载项目.例外:回溯(最近一次调用最后一次):文件"/Library/Python/2.7/site-packages/pip/basecommand.py",第211行,主状态= self.run(options,args)文件"/ Library/Python/2.7/site-packages/pip/commands/install.py",第311行,运行root = options.root_path,文件"/Library/Python/2.7/site-packages/pip/req/req_set.py",第640行,在安装requirements.uninstall(auto_confirm = True)文件"/Library/Python/2.7/site-packages/pip/req/req_install.py",第716行,在卸载paths_to_remove.remove(auto_confirm)文件"/ Library /Python/2.7/site-packages/pip/req/req_uninstall.py",线125,在删除重命名(路径,new_path)文件"/Library/Python/2.7/site-packages/pip/utils/ INIT py"为,第315行,重命名为shutil.move(旧的,新的)文件"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py",第302行,移动copy2(src) ,real_dst)文件"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py",第131行,在copy2 copystat(src,dst)文件"/ System/Li brary/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py",第103行,在copystat中os.chflags(dst,st.st_flags)OSError:[Errno 1]不允许操作:'/ VAR /文件夹/ M0/hzt3nk9d43n05bwm6zztqjkh0000gn/T/PIP-HESb5m-卸载/系统/资源库/框架/ Python.framework /版本/ 2.7 /额外/ lib中/蟒蛇/ numpy的-1.8.0rc1-py2.7.egg-INFO" (2)
因此,我试图使用Python中的rarfile库来归档.rar文件,但它一直说“无法打开”。我正在使用Mac OS X El Capitan,python 2.7。任何帮助,将不胜感激,谢谢。
原始代码:
rf = RarFile('test.rar')
rf.extractall()
Run Code Online (Sandbox Code Playgroud)
错误信息:
File "Test.py", line 271, in <module>
rf.extractall()
File "/Users/user/Library/Python/2.7/lib/python/site-packages/rarfile.py", line 679, in extractall
self._extract(fnlist, path, pwd)
File "/Users/user/Library/Python/2.7/lib/python/site-packages/rarfile.py", line 1238, in _extract
check_returncode(p, output)
File "/Users/user/Library/Python/2.7/lib/python/site-packages/rarfile.py", line 1961, in check_returncode
raise exc(msg)
rarfile.RarUnknownError: Unknown exit code [1]: bsdtar: Error opening archive: Failed to open '--'
Run Code Online (Sandbox Code Playgroud) 我正在使用PCA,我在Python中发现了sklearn中的PCA,而在Matlab中发现了pca()产生了不同的结果.这是我正在使用的测试矩阵.
a = np.array([[-1,-1], [-2,-1], [-3, -2], [1,1], [2,1], [3,2]])
Run Code Online (Sandbox Code Playgroud)
对于Python sklearn,我得到了
p = PCA()
print(p.fit_transform(a))
[[-1.38340578 0.2935787 ]
[-2.22189802 -0.25133484]
[-3.6053038 0.04224385]
[ 1.38340578 -0.2935787 ]
[ 2.22189802 0.25133484]
[ 3.6053038 -0.04224385]]
Run Code Online (Sandbox Code Playgroud)
对于Matlab,我得到了
pca(a', 'Centered', false)
[0.2196 0.5340
0.3526 -0.4571
0.5722 0.0768
-0.2196 -0.5340
-0.3526 0.4571
-0.5722 -0.0768]
Run Code Online (Sandbox Code Playgroud)
为什么观察到这种差异?
谢谢Dan的回答.结果现在看起来很合理.但是,如果我使用随机矩阵进行测试,似乎Matlab和Python正在产生的结果不是彼此的标量倍数.为什么会这样?
test matrix a:
[[ 0.36671885 0.77268624 0.94687497]
[ 0.75741855 0.63457672 0.88671836]
[ 0.20818031 0.709373 0.45114135]
[ 0.24488718 0.87400025 0.89382836]
[ 0.16554686 0.74684393 0.08551401]
[ 0.07371664 0.1632872 0.84217978]]
Run Code Online (Sandbox Code Playgroud)
Python结果:
p …Run Code Online (Sandbox Code Playgroud)