2012-07-06 4 views
2

Eclipse/Pydev에서 사용하는 Python 3.2 용 SQLAlchemy를 설치하려고했습니다. 간단한 테스트 스크립트는 이클립스에서 실행하면 이클립스가 자동으로 발견, 그래서 내가, 내가 실제로 Ctrl 키 셔츠-O와 수입 라인을 생성하지만 SQLAlchemy Pydev/Eclipse에서 가져 오기 오류

Traceback (most recent call last): 
    File "...\sqlalchemy.py", line 1, in <module> 
    from sqlalchemy.engine import create_engine 
    File "...\sqlalchemy.py", line 1, in <module> 
    from sqlalchemy.engine import create_engine 
ImportError: No module named engine 

을 얻을

from sqlalchemy.engine import create_engine 
engine=create_engine("mysql://user:[email protected]/database") 

를 실패하고 그것에 대해 알고 . 또한 Pydev는 스크립트에 오류를 표시하지 않습니다. 내가 대화 형의 PyDev 콘솔에서 동일한 스크립트를하려고하면

난 당신이 어떻게 작동하려면 아이디어가 있습니까

from sqlalchemy.engine import create_engine 
engine=create_engine("mysql://user:[email protected]/database") 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "C:\Python32\lib\site-packages\sqlalchemy-0.7.8-py3.2.egg\sqlalchemy\engine \__init__.py", line 338, in create_engine 
    return strategy.create(*args, **kwargs) 
    File "C:\Python32\lib\site-packages\sqlalchemy-0.7.8-py3.2.egg\sqlalchemy\engine\strategies.py", line 64, in create 
    dbapi = dialect_cls.dbapi(**dbapi_args) 
    File "C:\Python32\lib\site-packages\sqlalchemy-0.7.8-py3.2.egg\sqlalchemy\connectors\mysqldb.py", line 52, in dbapi 
    return __import__('MySQLdb') 
ImportError: No module named MySQLdb 

를 얻을?

답변

5

답변은 간단합니다. 기본 모듈의 이름은 sqlalchemy.py입니다. 이것은 시스템 모듈과 동일한 이름으로 자신의 모듈을 명명하는 것보다 훨씬 더 쉽게 파이썬 2에 빠지기 쉬운 함정입니다. 시작 당신의 sqlalchemy.py에서

__main__ 모듈로 파이썬에 의해로드되고 첫 번째 줄, 파이썬 다시로드 모듈 sqlalchemysqlalchemy.py을 실행하면, 파이썬 인터프리터는 이미 sqlalchemysys.modules에서 찾았지만 engine이라는 변수 또는 모듈을 포함하지 않습니다.

쉬운 수정을 위해 sqlalchemy.py을 예를 들어 satest.py으로 바꿉니다. 보다 완벽한 솔루션을 원할 경우 코드를 패키지로 구성하십시오.

1

첫 번째 오류는 Antti에서 설명한 것처럼 불행한 실수 였지만 마침내 다른 문제도 해결했습니다. 나는 다시 MySQL 서버가 필요한 MySQLdb를 설치하지 않았다. 하는 올바른 구문이

engine=create_engine("mysql+mysqlconnector://...") 

내가이있는 동안은 간단한 테스트 예제를 찾고 보지 못했다입니다 대신에 나는 MySQL의 커넥터가 있습니다.