Pylons/SQLAlchemy与MySQL的ImportError
首先,我得说我对Pylons完全是个新手,之前是用PHP和MySQL,现在想学用Python做网页开发。我看到过类似的问题,但我的情况有点不同。
我一直在按照Pylons的书(pylonsbook.com)来设置我的应用程序,但遇到了以下错误:
ImportError: libmysqlclient_r.so.15: 无法打开共享对象文件:没有这样的文件或目录
我看到的其他问题通常是因为用户安装了旧版本的libmysqlclient_r.so.15,而我似乎安装的是第16版。
如果你有什么建议我可以做的,真的非常感谢。完整的输出信息在下面。
(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
2 个回答
0
我也遇到了同样的错误,不过我是用Django框架。我的操作系统是Ubuntu Lucid(10.04),对我有效的解决办法是删除(或者重命名)MySQL_python-1.2.3c1-py2.6-linux-i686.egg这个文件夹,然后安装python-mysqldb,如果你还没有安装的话。
出现这个问题的原因似乎是MySQL_Python这个二进制文件直接链接到了libmysqlclient_15.so这个库,而在Lucid版本中,这个库已经被libmysqlclient_16.so替代了。
我是在这里找到这个解决办法的:http://github.com/rafpaf/OpenHatch
2
要么安装 .so.15 版本的库,要么找到或者自己编译一个与 .so.16 兼容的 MySQLdb。