2010-04-15 3 views
0

첫째, 나는 PHP/MySQL 배경에서 나온 후에 파이썬으로 웹 개발을 배우려고 Pylons에 완전히 익숙하다고 말해야한다. 나는이 문제와 비슷한 질문을 보았지만 내 것은 반대로되어있다.Pylons/SQLAlchemy 및 MySQL을 포함한 ImportError

내가 설정 내 응용 프로그램에 철탑 책 (pylonsbook.com를) 다음과 같은 오류가 발생했습니다 :

ImportError를 : libmysqlclient_r.so.15 : 공유 객체 파일을 열 수 없습니다 : 그런 파일이나 디렉토리

기타 질문 사용자가 libmysqlclient_r.so.15의 이전 버전을 사용하는 것과 관련하여 보았지만, v16을 설치 한 것 같습니다.

내가 할 수있는 일에 대한 제안은 크게 감사하겠습니다. 전체 출력은 다음과 같습니다.

(env)[email protected]:/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

라이브러리의 .so.15 버전을 설치하거나 .so.16에 대해 MySQLdb를 찾거나 빌드하십시오.

+0

감사합니다. 어떻게 두 번째 옵션을 어떻게 생각 하나? – eclipse31

+0

MySQL 개발 패키지를 설치 한 다음 MySQLdb 소스를 가져 와서 다시 빌드하십시오. –

+0

FWIW, 이것들은 MySQL 5.1 libs입니다. – jathanism

0

Django와 작업하고 있었지만 같은 오류가있었습니다. 나는 우분투 루시드 (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

+1

감사합니다 karpoke. MySQL_python-1.2.3c1-py2.6-linux-i686.egg는 무엇에 이름을 바꿨습니까? 그것은 중요하거나 단순히 그것을 바꾸고 pyhton-mysql을 설치하는 것이 속임수입니까? – eclipse31

+0

삭제하는 대신 이름을 바꾸면 무언가를 엉망으로 만들 때 쉽게 되돌릴 수 있습니다. 일단 이름을 바꿨 으면 (임의의 이름을 선택해도 임의의 접미어를 추가해도 괜찮습니다)이 솔루션이 제대로 작동하는지 확인한 후에 원하는 경우 해당 디렉토리를 삭제할 수 있습니다. – karpoke