解决windows安装python+mysqldb各种坑

解决windows安装python+mysqldb各种坑

1.pip 安装
E:\Code\Python\mysql>setup.py install
Traceback (most recent call last):
  File "E:\Code\Python\mysql\setup.py", line 15, in <module>
    metadata, options = get_config()
  File "E:\Code\Python\mysql\setup_windows.py", line 7, in get_config
    serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_key'])
WindowsError: [Error 2]

这个必然出现

网上找到方法,安装MySQL,并将Mysql的bin,添加到path中,安装即可。这个没试过不知道是否可以

2.exe方式安装
  • (32位系统不会)如果你下载的链接是 : https://pypi.python.org/pypi/MySQL-python/1.2.5 安装的时候之后,启动项目你会发现

    UnicodeDecodeError: 'ascii' codec can't decode byte 0xb2 in position 0: ordinal not in range

    解决办法:

    1.打开python的Lib文件夹下的 mimetypes.py,找到 ‘default_encoding = sys.getdefaultencoding()’。在这行前面添加三行

          if sys.getdefaultencoding() != 'gbk':  
          reload(sys)  
          sys.setdefaultencoding('gbk')
    

    如果1还是解决不了,不妨试试第二种: 到下面的网址下载,对应系统位数的版本安装包

    http://www.codegood.com/downloads

3.对于exe安装时,出现的,无法找到python的registry问题的解决方法

# -*- coding: utf-8 -*-
"""
@author: lifaxin @ 2015-12-21
"""

from _winreg import *
import sys

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!"
#delete registry
def UnRegisterPy():
    try:
        print "open HKEY_CURRENT_USER key=%s"%(regpath)
        reg = OpenKey(HKEY_CURRENT_USER, 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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值