新建一个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,安装数据库的一定注意。