`

让turboGears支持MySQL -- 解决MySQL-python-1.2.2的安装问题

阅读更多
今天在配置服务器环境时发现即使安装了MySQL-python-1.2.2.tar.gz,也用不了MySQLdb模块的问题,在网上灌水了好长时间才从一个国外的论坛找到了一些解决方案
但是可惜不是很全面,结合自己的实践终于解决了这个问题.现将过程记录备案.

真诚的希望国内的程序员以及站长在发帖时能够记录些真实可靠的信息,不要人云亦云,
因为你的疏忽会造成我们长时间的困惑... 谢谢大家

进入Python 后 输入以下命令
import MySQLdb

结果发现 出现如下错误:
libmysqlclient_r.so.10 文件不存在


怎么会缺少这个 链接库呢 手工做了一个软连接 /usr/lib/libmysqlclient_r.so.10 发现爆出[变量未定义错误]:
ImportError: /usr/local/lib/python252/site-packages/_mysql.so: undefined symbol: mysql_set_character_set


困扰了一上午,找了好多国内的网站,包括很拽的博客,都没有找到答案,国内真正的高手们,倡导开源就不要敝帚自珍啊,抱怨 o(∩_∩)o...

解决方案:

第一步:
从 MySQL-python 官网下载MySQL-python-1.2.2.tar.gz文件,解压缩后,进入其中
找到site.cfg文件,修改如下所示:
[options]
# embedded: link against the embedded server library
# threadsafe: use the threadsafe client
# static: link against a static library (probably required for embedded)

embedded = False
threadsafe = True
static = True


[compiler]
#mysql_root: /usr/local/mysql
library_dirs: /usr/local/mysql/lib #此处为你的mysql共享库目录
include_dirs: /usr/local/mysql/include #此处为你的mysql头文件目录
# libraries: mysqlclient

# The path to mysql_config.
# Only use this if mysql_config is not on your PATH, or you have some weird
# setup that requires it.
#mysql_config = /usr/local/bin/mysql_config

# The Windows registry key for MySQL.
# This has to be set for Windows builds to work.
# Only change this if you have a different version.
registry_key = SOFTWARE\MySQL AB\MySQL Server 5.0



embedded = False 要设为False,否则编译时爆出不能找到mysqld.a错误

使用 python setup.py build 编译
使用 python setup.py install 安装

它会自动安装到Python目录下,无需手动

第二步 解决libmysqlclient_r.so.10的问题:
ln -s /usr/lib/mysql/libmysqlclient_r.so.10 /lib/libmysqlclient_r.so.10


注意将/usr/lib/mysql/libmysqlclient_r.so.10做一个软连接到/lib目录

此时 在Python中导入成功 , 测试成功
1
0
分享到:
评论
3 楼 vb2005xu 2014-09-16  
引用

致命错误:Python.h:没有那个文件或目录 编译中断。
          出现这个问题的原因是,系统中的python是自带的,而没有安装python的开发包并没有安装,所以在shell下执行如下命令:
点击(此处)折叠或打开

yum install python-devel
     C)和B)一样执行命令后,还可能出现这样的类似的错误:
        =======>_mysql.c:36:23: 致命错误:my_config.h:没有那个文件或目录 编译中断。
         显而易见,解决的方法和上面的也是一样的,这是因为mysql开发包未安装,同样执行以下命令就可以解决了!
点击(此处)折叠或打开

yum install mysql-devel
3)最后,问题就圆满解决了!(PS:前提是你已经安装好了mysql,如果没有也会触发相应错误,这时只要安装就行了)
2 楼 vb2005xu 2012-03-24  
Python中的easy_install工具很爽,它的作用类似于Php中的pear,或者Ruby中的gem,或者Perl中的cpan。

如果想使用easy_install工具,可能需要先安装setuptools,不过更酷的方法是使用ez_setup.py脚本:

wget -q http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

安装完后,最好确保easy_install所在目录已经被加到PATH环境变量里:

Windows: C:\Python25\Scripts
Linux: /usr/local/bin

比如说要安装Python的MySQL支持,可以执行如下命令,系统会自动在pypi网站列表里查找相关软件包:

easy_install MySQL-python

如果你在Windows+python2.5上执行如上命令的话,可能会出现如下错误:

Processing MySQL-python-1.2.3c1.tar.gz
Running MySQL-python-1.2.3c1\setup.py -q bdist_egg --dist-dir c:\docume~1\...
\locals~1\temp\easy_install-fvvfve\MySQL-python-1.2.3c1\egg-dist-tmp-q9moxf
error: The system cannot find the file specified

出现这类错误的原因是选错了版本,针对这个案列,我们可以显式指定软件包的版本号:

easy_install "MySQL-python==1.2.2"

通过easy_install安装软件,相关安装信息会保存到easy-install.pth文件里,路径类似如下形式:

Windows:C:\Python25\Lib\site-packages\easy-install.pth
Linux:/usr/local/lib/python25/site-packages/easy-install.pth

如果想删除通过easy_install安装的软件包,比如说:MySQL-python,可以执行命令:

easy_install -m MySQL-python

此操作会从easy-install.pth文件里把MySQL-python的相关信息抹去,剩下的egg文件,你可以手动删除。
1 楼 vb2005xu 2009-07-16  
MYSQL中文操作测试

#-*- coding: utf-8 -*-
import sys,MySQLdb

conn=MySQLdb.connect(host="127.0.0.1",user="webdb",passwd="web123",db="web",charset="utf8")    #需要设定一下charset为utf-8
cursor=conn.cursor()    #生成连接的指针对象

#进行字符串编码转换并进行插入
a = "浦发银行"
a = a.decode("gbk").encode("utf-8")    #编码转换为utf-8
sql="insert into stocklist (stockno,stockname) values (%s,%s)"    #生成sql语句
param=('600000',a)    #生成sql语句的参数
n = cursor.execute(sql,param)    #执行sql语句
#以 上操作等价于 n = cursor.execute("insert into stocklist (stockno,stockname) values ('430004','"+ " 浦发银行".decode("gbk").encode("utf-8") + "')")

print n
conn.commit() #提交操作结果

#进行查询操作检查刚刚执行的插入操作结果
n = cursor.execute("select * from stocklist")
for row in cursor.fetchall():
    print row[0] + row[1]
cursor.close()    #关闭指针
conn.close()    #关闭连接

相关推荐

    PyPI 官网下载 | TurboGears2-2.3.12.tar.gz

    对于初学者来说,TurboGears2提供了丰富的文档和社区支持,有助于快速上手和解决问题。 为了充分利用TurboGears2,你需要熟悉Python编程基础,了解MVC架构,掌握SQL(对于关系型数据库)或NoSQL(对于非关系型...

    Python-TurboGears是一个混合Web框架既可以作为FullStack框架也可以作为Microframework

    社区成员积极分享经验和解决问题,为新手和资深开发者都提供了宝贵的资源和支持。 总的来说,Python-TurboGears是一个兼顾全面功能和轻量级设计的Web框架,其灵活的架构和丰富的生态系统使得它在Python Web开发领域...

    Python库 | TurboGears2-2.1.4.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:TurboGears2-2.1.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    python2-fedora-turbogears2-0.10.0-1.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    python-fedora-turbogears2-0.7.1-2.el7.noarch.rpm

    官方离线安装包,亲测可用

    python-fedora-turbogears2-0.9.0-1.el7.noarch.rpm

    官方离线安装包,亲测可用

    Python Frameworks Web 2.0 Programming with Django and TurboGears

    ### Python Frameworks Web 2.0 Programming with Django and TurboGears #### 一、书籍概述与作者介绍 《Python Frameworks Web 2.0 Programming with Django and TurboGears》是一本深入探讨Python Web开发框架...

    TurboGears2-2.3.0-0.3.git6da6959.el7.noarch.rpm

    官方离线安装包,亲测可用

    TurboGears Widget Plugins-开源

    TurboGears小部件插件的源存储库。 如果您制作了TurboGears小部件,请发送邮件给我,以获取将您的TurboGears小部件放在此处的许可。 从http://www.turbogears.org/cogbin/下载Turb​​oGears小部件

    turbogears_中文教程

    TurboGears是一款基于Python的Web框架,旨在简化Web应用程序的开发流程。它融合了MVC(Model-View-Controller)设计模式,使得开发者能够更加高效地构建动态网页应用。TurboGears不仅适用于初学者快速上手,同时也...

    Python Web框架--使用Django和Python开发Web站点

    Django 项目是一个定制框架,...要查看是否安装了 Python 以及 Python 的版本号,可以输入 python -V。Django 至少需要 2.3.5 版本的 Python,可以从 Python Web 站点上下载它。我们至少还应该顺便熟悉一下 MVC 架构。

    Turbogears 2.0.3 官方帮助文档离线包

    Turbogears是一个基于Python的Web应用程序框架,它结合了MVC(模型-视图-控制器)设计模式和组件化开发的理念,为开发者提供了一个高效、灵活且强大的工具集。这个离线包是Turbogears 2.0.3版本的官方帮助文档,旨在...

    在Eclipse中调试/运行TurboGears2

    在Eclipse中调试/运行TurboGears2是一项重要的技能,尤其对于那些使用Python进行Web开发的程序员来说。TurboGears2是一个轻量级、可扩展的...记住,了解并熟练掌握这些步骤对于提升开发效率和解决运行时问题至关重要。

    基于Python的Web技术

    * TurboGears:TurboGears 是一种基于 Python 的 Web 框架,具有高效、灵活等优点。 其他 Python Web 技术 除了 Web 框架外,Python 还有多种其他 Web 技术,例如: * Web 服务器:Python 可以用作 Web 服务器,...

    艾伯特python新员工教材

    - **解决中文字符的问题**:介绍如何处理Python中的中文字符编码问题。 - **字符串的格式化**:展示多种字符串格式化的方法,如使用`%`操作符、`str.format()`方法等。 - **字符串的合并与分割**:介绍字符串的连接...

    Professional.Python.Frameworks.Web.2.0.Programming.with.Django.and.TurboGears

    《专业Python框架:使用Django和TurboGears进行Web 2.0编程》一书由Dana Moore、Raymond Budd和William Wright合著,由Wiley Publishing, Inc.出版,深入探讨了如何利用Python这一强大且灵活的编程语言来构建高效、...

    TurboGears是一个混合Web框架,既可以作为Full Stack框架,也可以作为Microframework-python

    TurboGears 具有全堆栈层的Python Web框架,在微框架核心上实现,支持MongoDB,可插拔应用程序和自动生成的AdminTurboGears TurboGears 是一个混合网络框架,既可以作为全栈框架,也可以作为微框架。 TurboGears 可...

    Python库 | tgext.menu-1.0b1.tar.gz

    TurboGears是一个开源的Python Web应用框架,它结合了MVC(模型-视图-控制器)架构模式和组件式开发,以提供高性能、灵活且易于使用的解决方案。tgext.menu可能就是为这个框架提供了一个强大的菜单管理模块。 在...

    python入门基础篇

    4. **高级语言**:作为一种高级语言,Python允许开发者专注于解决问题的核心逻辑,而不需要关心底层细节,如内存管理等。 5. **可扩展性和可嵌入性**:Python可以轻松地与C/C++等其他语言集成,从而实现高性能计算...

Global site tag (gtag.js) - Google Analytics