新建一个register.py 文件,执行一下即可(在python3互环境下)。win7是 64的原因,在安装python(32位)时,如果选择只为当前用户,以上问题是不会出现的,如果选择所有用户,那就用下面的方法解决吧。
import sys from winreg import * # tweak as necessary version = sys.version[:3] installpath = sys.prefix regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version) installkey = "InstallPath" pythonkey = "PythonPath" pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % ( installpath, installpath, installpath ) def RegisterPy(): try: reg = OpenKey(HKEY_CURRENT_USER, regpath) except EnvironmentError as e: try: reg = CreateKey(HKEY_CURRENT_USER, regpath) SetValue(reg, installkey, REG_SZ, installpath) SetValue(reg, pythonkey, REG_SZ, pythonpath) CloseKey(reg) except: print ("*** Unable to register!") return print ("--- Python", version, "is now registered!") return if (QueryValue(reg, installkey) == installpath and QueryValue(reg, pythonkey) == pythonpath): CloseKey(reg) print ("=== Python", version, "is already registered!") return CloseKey(reg) print ("*** Unable to register!") print ("*** You probably have another Python installation!") if __name__ == "__main__": RegisterPy()
出现标题情况的原因有两种可以:
1.NumPy和SciPy官方网站上只提供了32bit的文件,所以安装python 64的童鞋很容易躺着也中枪;
2.某些粗心的童鞋安装python之后没有注册、就是在环境变量的path中添加python的安装路径。
解决方案一(针对32bit):
最简单的方法是将已安装的64bit的python卸载、重新安装32bit。原本我用的是python64安装Numpy有上面这个问题,重新安装python32bit后解决了。
解决方案二(针对64bit):
对于想用python64bit不想更换回32bit的,需要借助一些其他人开发的库,这里收集了很多python官方不支持的扩展包Unofficial Windows Binaries for Python Extension Packages。
下载numpy-1.8.1-win32-superpack-python2.7.exe 安装即可,对应的SciPy的也是。
python3不再支持mysqldb。其替代模块是PyMySQL,安装数据库的一定注意。