【问题标题】:ImportError with Pylons/SQLAlchemy and MySQL带有 Pylons/SQLAlchemy 和 MySQL 的 ImportError
【发布时间】:2011-02-08 14:34:04
【问题描述】:

首先,我应该说我对 Pylons 完全陌生,在 PHP/MySQL 背景之后尝试使用 Python 学习 Web 开发。我已经看到与此问题类似的问题,但我的问题是一个反向版本。

我一直在关注 Pylons 书 (pylonsbook.com) 来设置我的应用程序并收到以下错误:

ImportError: libmysqlclient_r.so.15: cannot open shared object file: No such file or directory

我看到的其他问题与使用旧版本 libmysqlclient_r.so.15 的用户有关,而我似乎安装了 v16。

任何关于我可以/应该做什么的建议将不胜感激。整个输出如下。

(env)eclipse@eclipse31:/var/www/python/SimpleSite$ paster setup-app development.ini
Running setup_config() from simplesite.websetup
Traceback (most recent call last):
File "/var/www/python/env/bin/paster", line 8, in <module>  
    load_entry_point('PasteScript==1.7.3', 'console_scripts', 'paster')()  
File "/var/www/python/env/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 84, in run
    invoke(command, command_name, options, args[1:])
File "/var/www/python/env/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 123, in invoke
    exit_code = runner.run(args)
File "/var/www/python/env/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/appinstall.py", line 68, in run
    return super(AbstractInstallCommand, self).run(new_args)
File "/var/www/python/env/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 218, in run
    result = self.command()
File "/var/www/python/env/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/appinstall.py", line 456, in command
    self, config_file, section, self.sysconfig_install_vars(installer))
File "/var/www/python/env/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/appinstall.py", line 598, in setup_config
    mod.setup_app, command, filename, section, vars)
File "/var/www/python/env/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/appinstall.py", line 612, in _call_setup_app
    func(command, conf, vars)
File "/var/www/python/SimpleSite/simplesite/websetup.py", line 16, in setup_app
    load_environment(conf.global_conf, conf.local_conf)
File "/var/www/python/SimpleSite/simplesite/config/environment.py", line 48, in load_environment
    engine = engine_from_config(config, 'sqlalchemy.')
File "/var/www/python/env/lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/engine/__init__.py", line 241, in engine_from_config
    return create_engine(url, **opts)
File "/var/www/python/env/lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/engine/__init__.py", line 223, in create_engine
    return strategy.create(*args, **kwargs)
File "/var/www/python/env/lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/engine/strategies.py", line 62, in create
    dbapi = dialect_cls.dbapi(**dbapi_args)
File "/var/www/python/env/lib/python2.6/site-packages/SQLAlchemy-0.5.8-py2.6.egg/sqlalchemy/databases/mysql.py", line 1456, in dbapi
    import MySQLdb as mysql
File "/var/www/python/env/lib/python2.6/site-packages/MySQL_python-1.2.3c1-py2.6-linux-i686.egg/MySQLdb/__init__.py", line 19, in <module>
    File "/var/www/python/env/lib/python2.6/site-packages/MySQL_python-1.2.3c1-py2.6-linux-i686.egg/_mysql.py", line 7, in <module>
File "/var/www/python/env/lib/python2.6/site-packages/MySQL_python-1.2.3c1-py2.6-linux-i686.egg/_mysql.py", line 6, in __bootstrap__
ImportError: libmysqlclient_r.so.15: cannot open shared object file: No such file or directory

【问题讨论】:

    标签: python mysql sqlalchemy pylons


    【解决方案1】:

    要么安装 .so.15 版本的库,要么针对 .so.16 查找或构建 MySQLdb。

    【讨论】:

    • 感谢您的回复。知道我如何做第二个选项吗?
    • 安装MySQL开发包,然后获取并重建MySQLdb源码。
    • FWIW,这些是 MySQL 5.1 库。
    【解决方案2】:

    虽然我使用的是 Django,但我遇到了同样的错误。我正在使用 Ubuntu Lucid (10.04),一个对我有用的解决方案是删除(或重命名)MySQL_python-1.2.3c1-py2.6-linux-i686.egg 目录并安装 python-mysqldb,如果你不这样做'还没有。

    原因似乎是 MySQL_Python 二进制 egg 直接链接到了 libmysqlclient_15.so,而这个库已经被 Lucid 中的 libmysqlclient_16.so 取代了。

    我在http://github.com/rafpaf/OpenHatch 找到了这个解决方案

    【讨论】:

    • 谢谢 karpoke。您将 MySQL_python-1.2.3c1-py2.6-linux-i686.egg 重命名为什么?重要还是只是重命名它并安装 pyhton-mysql 就可以了?
    • 重命名而不是删除可以让您在遇到问题时轻松撤消。重命名后(无论您选择多少名称,附加随机后缀都应该可以正常工作)并检查此解决方案是否适合您,如果需要,您可以删除该目录。
    猜你喜欢
    • 1970-01-01
    • 2011-05-02
    • 2011-05-09
    • 1970-01-01
    • 2011-05-30
    • 2011-04-25
    • 2011-08-16
    • 2015-12-21
    • 2011-01-22
    相关资源
    最近更新 更多