zoukankan      html  css  js  c++  java
  • Python version 2.7, which was not found in the registry

    在安装部分Python包时会出现问题:明明已经安装了Python2.7,但无法在注册表相关位置找不到,那该怎么感觉该问题呢?

     首先检查你的系统位数,位数不同,解决方案不一样。

    1)32位系统:在cmd输入regedit然后将HKEY_LOCAL_MACHINESOFTWAREPythonPythonCore2.7InstallPath路径下的值,复制到HKEY_LOCAL_MACHINESOFTWAREWow6432NodePythonPythonCore2.7InstallPath路径下,当然没有路径的话一定要新建起来。然后就可以安装了。本解决方案适用于只提供了32位安装包的库。

    原因:Python的一些第三方库只到注册表的HKEY_LOCAL_MACHINESOFTWAREWow6432NodePythonPythonCore2.7InstallPath路径下寻找Python。但是装好的64位Python在HKEY_LOCAL_MACHINESOFTWAREPythonPythonCore2.7InstallPath路径下建立Python的信息。

    2)64位系统:将Python2.7加入到注册表中。可以通过运行下面代码:

     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()
    View Code
  • 相关阅读:
    自考新教材-p209
    自考新教材-p205
    自考新教材-p200
    自考新教材-p197
    Java IO (5)
    Java IO (1)
    Java IO (2)
    Java IO (3)
    通过源码学Java基础:InputStream、OutputStream、FileInputStream和FileOutputStream
    Spring入门(1)-第一个Spring项目
  • 原文地址:https://www.cnblogs.com/no-tears-girl/p/6959014.html
Copyright © 2011-2022 走看看