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