原文出自:https://www.cnblogs.com/tlz888/p/6879227.html

【提要】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运行即可。

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():
print "begin RegisterPy "
try:
print "open key : %s"%regpath
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 "*** EXCEPT: 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 "*** ERROR:Unable to register!"
print "*** REASON:You probably have another Python installation!" def UnRegisterPy():
#print "begin UnRegisterPy "
try:
print "open HKEY_CURRENT_USER key=%s"%(regpath)
reg = OpenKey(HKEY_CURRENT_USER, regpath)
#reg = OpenKey(HKEY_LOCAL_MACHINE, regpath)
except EnvironmentError:
print "*** Python not registered?!"
return
try:
DeleteKey(reg, installkey)
DeleteKey(reg, pythonkey)
DeleteKey(HKEY_LOCAL_MACHINE, regpath)
except:
print "*** Unable to un-register!"
else:
print "--- Python", version, "is no longer registered!" if __name__ == "__main__":
RegisterPy()

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

  

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

  

  如果由于诸如安装后又卸载了多个版本python的原因导致注册表信息不对,可以直接手动编辑注册表,然后重新注册。

  手动在注册表中添加注册信息的方法跟上述python代码中过程一致。

【转载】windows安装python2.7后的注册表问题的更多相关文章

  1. windows安装python2.7后的注册(registry)问题

    [提要]win平台上,python2.7官网的安装包在安装后不会添加环境变量且不会把安装信息写入注册表. 把python和pip的安装路径添加到环境变量是做python开发必要的一步,而写入注册表的原 ...

  2. Windows 安装 python2.7

    Windows 安装 python2.7 python2.7下载地址: https://www.python.org/downloads/release/python-2714/ 安装过程: 设置系统 ...

  3. Win 2008 R2安装SQL Server 2008“性能计数器注册表配置单元一致性”失败的解决办法

    Win 2008 R2安装SQL Server 2008“性能计数器注册表配置单元一致性”失败的解决办法(2011-02-23 19:37:32) 转载▼   今天在惠普服务器上安装数据库2008时, ...

  4. SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法

    操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...

  5. 安装Oracle服务端后配置注册表与PL/SQL

    1.流程: 1.安装Oracle客户端(绿色版和安装版均可,建议安装在和Oracle服务端文件夹并行的路径下,例:E:\app\yginuo\product\11.2.0) 2.配置环境变量和注册表( ...

  6. 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 ...

  7. C#部署安装,将用户安装路径记录下写入注册表,并启动

    安装部署程序,将安装目录写入注册表 (1)在“安装部署项目”上点击“注册表编辑器” (2)在HKey_LOCAL_MACHINE_SoftWare 下新建键 Manufacturer 代表软件的制造商 ...

  8. Windows XP和Wndows7误删除了注册表下.exe文件夹之修复办法

    在桌面空白处鼠标右击选择“新建-文本文档”,然后将下面的代码复制粘贴进去;如图所示: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\. ...

  9. 从Windows系统服务获取活动用户的注册表信息(当前活动用户的sessionId. 当前活动用户的 hUserToken)

    首先,对“活动用户”的定义是,当前拥有桌面的用户.对于Windows XP及其以后的系统,即使是可以多个用户同时登录了,拥有桌面的也仅仅只有一个. 如果系统级服务调用Windows API来获取注册表 ...

随机推荐

  1. 位图索引对于DML操作的影响

    位图索引相对于常规的B-tree 索引,有着体积更加小的优势,节省空间.对于重复率特别高的字段,比如性别,比如省份.查询效率要优于B-tree 索引.那为什么我们总被告知在业务库中不要使用呢? 业务库 ...

  2. 常用LLDB指令

    print.p: 打印内存地址 po: 打印对象   1.读取内存 memory read/数量格式字节数 内存地址 x/数量格式字节数 内存x/3xw 0x10010 格式:x是16进制,f是浮点, ...

  3. Vue packages version conflicts 错误修复

    我们在使用Vue作为weex中的前端框架的开发过程中,某次 npm start 遇到了如下的错误: Vue packages version mismatch: - vue@2.5.16 - vue- ...

  4. vim内替换文件内容

    几个常用的方法如下: :%s/foo/bar/g 把全部foo替换为bar,全局替换 :s/foo/bar/g 当前行替换foo为bar :%s/foo/bar/gc 替换每个foo为bar,但需要确 ...

  5. svn造成桌面图标显示问号

    (1)在使用svn客户端的时候桌面的所有图标上面都加了一个“?”.而且在桌面上新建的文件夹或文件都会打个问号,下面是笔者搜集的方法:在桌面创建记事本文件,把这句话复制进去for /r . %%a in ...

  6. 解决mysql远程登录

    MySQL不允许远程登录,所以远程登录失败了,解决方法如下: 在装有MySQL的机器上登录MySQL mysql -u root -p密码 执行use mysql; 执行update user set ...

  7. ElasticSearch优化系列二:机器设置(内存)

    预留一半内存给Lucene使用 一个常见的问题是配置堆太大.你有一个64 GB的机器,觉得JVM内存越大越好,想给Elasticsearch所有64 GB的内存. 当然,内存对于Elasticsear ...

  8. daterangepicker的个性化使用技巧

    由于该模板不自动将时间戳添加到input中去,始终为NaN,所以,自己选取起始时间与截止时间 var startTime =new Date(new Date().toLocaleDateString ...

  9. Maven plugin插件---appassembler-maven-plugin快速配置

    使用appassembler-maven-plugin 打包自定义目录 1.Pom中添加 <plugin> <artifactId>maven-resources-plugin ...

  10. 20190305-leetcode题目有效的括号

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...