windows安装python2.7后的注册(registry)问题
【提要】win平台上,python2.7官网的安装包在安装后不会添加环境变量且不会把安装信息写入注册表。
把python和pip的安装路径添加到环境变量是做python开发必要的一步,而写入注册表的原因是,有些python包以
windows installer的形式安装,安装的时候需要用到python的注册表信息,比如,numpy, scipy。
安装步骤:
(1)到python官网下载安装包,www.python.org/downloads,运行安装;
(2)把python.exe所在路径(python安装路径)以及pip.exe路径(python安装路径下的Script文件加)添加到path环境变量。
比如我的python在这里:“C:\Python27”,那么添加路径:“C:\Python27”和“C:\Python27\Scripts”到path环境变量;
(3)在注册表中添加python注册信息,用于python可以操作windows的注册表,可以运行python文件来完成此步操作,
以下为python源码,把它拷贝出来,放在任意位置,用python运行即可。

1 import sys
2
3
4 from _winreg import *
5
6 # tweak as necessary
7 version = sys.version[:3]
8 installpath = sys.prefix
9 regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
10 installkey = "InstallPath"
11 pythonkey = "PythonPath"
12 pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (
13 installpath, installpath, installpath
14 )
15
16 def RegisterPy():
17 print "begin RegisterPy "
18 try:
19 print "open key : %s"%regpath
20 reg = OpenKey(HKEY_CURRENT_USER, regpath)
21 except EnvironmentError as e:
22 try:
23 reg = CreateKey(HKEY_CURRENT_USER, regpath)
24 SetValue(reg, installkey, REG_SZ, installpath)
25 SetValue(reg, pythonkey, REG_SZ, pythonpath)
26 CloseKey(reg)
27 except:
28 print "*** EXCEPT: Unable to register!"
29 return
30
31 print "--- Python", version, "is now registered!"
32 return
33
34
35 if (QueryValue(reg, installkey) == installpath and
36 QueryValue(reg, pythonkey) == pythonpath):
37 CloseKey(reg)
38 print "=== Python", version, "is already registered!"
39 return CloseKey(reg)
40
41 print "*** ERROR:Unable to register!"
42 print "*** REASON:You probably have another Python installation!"
43
44 def UnRegisterPy():
45 #print "begin UnRegisterPy "
46 try:
47 print "open HKEY_CURRENT_USER key=%s"%(regpath)
48 reg = OpenKey(HKEY_CURRENT_USER, regpath)
49 #reg = OpenKey(HKEY_LOCAL_MACHINE, regpath)
50 except EnvironmentError:
51 print "*** Python not registered?!"
52 return
53 try:
54 DeleteKey(reg, installkey)
55 DeleteKey(reg, pythonkey)
56 DeleteKey(HKEY_LOCAL_MACHINE, regpath)
57 except:
58 print "*** Unable to un-register!"
59 else:
60 print "--- Python", version, "is no longer registered!"
61
62 if __name__ == "__main__":
63 RegisterPy()

如下图所示,出现Pyhton 2.7 is now registered!字样即为注册成功。

在注册表中也能看到相应的信息:

如果由于诸如安装后又卸载了多个版本python的原因导致注册表信息不对,可以直接手动编辑注册表,然后重新注册。
手动在注册表中添加注册信息的方法跟上述python代码中过程一致。
windows安装python2.7后的注册(registry)问题的更多相关文章
- 【转载】windows安装python2.7后的注册表问题
原文出自:https://www.cnblogs.com/tlz888/p/6879227.html [提要]win平台上,python2.7官网的安装包在安装后不会添加环境变量且不会把安装信息写入注 ...
- Windows 安装 python2.7
Windows 安装 python2.7 python2.7下载地址: https://www.python.org/downloads/release/python-2714/ 安装过程: 设置系统 ...
- CentOS6.5 安装Python2.7后, yum出现“No module named yum”错误
安装如下方法安装python2.7: yum install –y python27 python27-devel python-docutils cd /usr/bin/ rm -rf python ...
- 解决 在 WINDOWS 下 同时安装 python2 python3 后 pip 错误
再之前同时安装 python 后 只需把环境变量PATH 里面改为 PATH=C:\Python36-32\Scripts\;C:\Python36-32\;C:\Python27\;C:\Pytho ...
- centos6.8 安装Python2.7后, yum出现“No module named yum”错误
出现yum错误:No module named yum 解决方法,查看 /usr/bin下python有哪几个版本 ll /usr/bin 我这里是:2.6 和 2.7 (刚安装的) 由于yum命 ...
- windows 安装python2.7
下载:https://www.python.org/downloads/release/python-2716/ 安装即可. 设置环境变量 进入C:\Python27,修改python.exe 为py ...
- Windows安装完ADFS后卸载ADFS清除ADFS数据库
ADFS卸载后不会卸载掉之前ADFS配置后留下来的数据库,所以如果有必要去删掉这个数据库的话需要找到对应的路径去将数据库删除掉. 具体路径为C:/windows/wid/data/adfsartifa ...
- Windows安装python3.x后,pip list警告!DEPRECATION: The default format will switch to columns in the future.
前言(凑字数专用) 这个警告虽然不影响你的正常使用,但是每次都好几行红色警告,总是给人一种怪怪的感觉(当然不是FBI的警告了……),所以咱们还是把他解决掉~ 网上好多解决办法都是Ubuntu的解决办法 ...
- windows安装python2.7、python3.7和pycharm
下载安装包 下载可执行文件 安装 安装2.7 安装pycharm
随机推荐
- 无耻之徒(美版)第一季/全集Shameless US迅雷下载
第一季 Shameless Season 1 (2011)看点:本以为美版<无耻之徒>(Shameless)是小众剧(诸多儿童不宜),但是试播集98.2万的收视人次竟然创下了Showtim ...
- Cocos2d-x V2.x版本对64bit的支持
2015年2月1日后新提交的应用必须要支持64位架构. 我所使用的是cocos2d-x V2.0版本,而且源码有部分代码是修改过的.好在cocos2d-x官方已经放出了一个支持64位的2.2.6版本, ...
- IP的准确性
最近游戏项目中更新机制有所修改,游戏启动时会从cdn上读取一个文件(约60B),但是后台异常收集系统中发现很多玩家请求不了该文件(libcurl的get请求),返回的error code有很多种,以6 ...
- 《Python开发实战》
<Python开发实战> 基本信息 作者: (日)BePROUD股份有限公司 译者: 盛荣 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115320896 上架时 ...
- c#录音和放音,超简单!不用DirectX
最近在做android与C#录音并互相通信的小东西.但是卡在C#录音这儿了.找了好久,说的都是DirectX,可是我总是安装不上,这才找到了这个简单的录音方法.当然,如果你想要录得好并且处理音频,那还 ...
- [Web 前端 ] Jquery attr()方法 获取或修改 对象的属性值
cp from : https://blog.csdn.net/gf771115/article/details/18086707 jquery中用attr()方法来获取和设置元素属性,attr是at ...
- [转]如何在本地apache上架设多个站点
http://dongxin1390008.blog.163.com/blog/static/3179247820094279581256/ 通常情况下,我们有时候需要架设多个站点 比如 我的web站 ...
- aspnet_regiis -i VS 20XX 的开发人员命令提示符
1,VS 2010 Setting environment x86 tools. D:\Program Files\Microsoft Visual Studio 10.0\VC>aspnet_ ...
- css3新增样式介绍
在PC版开发中由于IE原因,我们很少用到css3,但随着平板和智能手机进入我们的生活,以及现在越来越流行,在手机版和平板版开发中我们就可以大胆的使用了,下面我们探讨常用几个css3属性: 1.css3 ...
- Android -- startActivityForResult和setResult
startActivityForResult与startActivity的不同之处 startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivit ...