2011-03-19 4 views
0

하위 디렉토리에 tweepy 패키지를 만들려고합니다. 그러나 나는 수입품을 작동시킬 수 없다. 하위 디렉토리에 tweepy를 추가 할 때 가져 오기 오류가 발생했습니다.

경우입니다 :

import socialmedia 
import tweepy 
import logging 


# This file is in socialmedia/twitter/__init__.py 
# Tweepy is located in socialmedia/twitter/tweepy/__init__.py 

# I am getting this error: 
""" 
Traceback (most recent call last): 
    File "/home/samos/workspace/socialmedia-api/src/test/test.py", line 1, in <module> 
    from socialmedia.twitter import TwitterAPI 
    File "/home/samos/workspace/socialmedia-api/src/socialmedia/twitter/__init__.py", line 5, in <module> 
    from socialmedia.twitter import tweepy 
    File "/home/samos/workspace/socialmedia-api/src/socialmedia/twitter/tweepy/__init__.py", line 12, in <module> 
    from tweepy.models import Status, User, DirectMessage, Friendship, SavedSearch, SearchResult, ModelFactory 
ImportError: No module named tweepy.models 
""" 

나는 이미 init.py을 사용하고 twitter.py를 사용하므로이 문제가 될 것 같지 않습니다되지 시도. 그것은 또한 tweepy의 수입이 작동하고있는 것으로 보이지만, tweepy의 수입은 잘 작동하지 않습니다.

답변

3

tweepy가 파이썬 경로 상에있을 것으로 예상됩니다. tweepy.models을로드하려고 시도합니다. 그러나 tweepy를 서브 디렉토리에 넣었으므로 models 모듈은 이제 socialmedia.twitter.tweepy.models에 있습니다.

파이썬 경로에 socialmedia/twitter/을 추가하거나 tweepy의 가져 오기를 변경하여 새로운 패키지 구조를 보완해야합니다. 어느 솔루션도 훌륭합니다. 전자는 설정해야하는 특별한 구성을 도입했습니다. 후자는 tweepy 코드가 업데이트 될 때마다 (업데이트 된 코드에 원래 tweepy.whatever 수입품이 포함될 것이므로) 수입품을 고쳐야 할 것입니다. 이것이 일반적으로 당신이하고있는 것처럼 패키지를 옮기는 것은 좋은 생각이 아닙니다. 대신, 그냥 (설치 setup.py 또는 easy_install, 또는 당신이 선호하는 어떤 방법을 실행) 다음 패키지를 사용하는 코드를 그냥 그것을 가져올 정상적으로 그것을 설치하십시오.

당신이 설명하는 디렉토리 구조를 옮겨야 만하는 것이 아니라면, 평소에 패키지를 설치하기 만하면됩니다. 그렇지 않으면 오름차순 전투에서 싸우고 있습니다. 그렇지 않으면