系统环境是win7(64bit)+python3.4(64bit)+numpy1.82+vs2012
1.如果用sourceforge上编译好的32bit的exe安装,会提示‘python version ** required,which was not found in the registry’.
原因是安装的python是64bit的吧(不确定),但是注册表里确实没有,
2.自己手动编译numpy安装,在numpy目录下cmd里‘python setup.py build‘会提示‘unable to find vcvarsall.bat‘,
原因是python默认使用的是vs2008版本,打开‘<python安装目录>\lib\distutils\msvc9compiler.py’发现默认的搜索目录下
的确没有vcvarsall这个文件。如果把vcvarsall移动到这个目录,就会出现第三个问题。一般的解决方法是使用mingw。
最好的解决方法直接在msvc9compiler.py文件中找到下面这一行:
vc_env = query_vcvarsall(VERSION, plat_spec)
修改为:
vc_env = query_vcvarsall(11.0, plat_spec)我的是vs2012 对应的version就是11.0
具体为什么这样改,参考http://blog.csdn.net/ren911/article/details/6448696
但这样更改后会出现第4个问题。
3.C:\Python33\lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall
raise ValueError(str(list(result.keys())))
ValueError: [‘lib‘, ‘include‘, ‘path‘]
这个问题没找到有效的解决方法 可以通过2种改version的方法避开这个问题
4.RuntimeError: Broken toolchain: cannot link a simple C program
在msvc9compiler.py中,把minfo的赋值语句更改为minfo=None,即可
原文地址:http://blog.csdn.net/wlyfls/article/details/38701209