使用sys.path.append()指定Tweepy API

时间:2012-06-19 18:50:49

标签: python tweepy

设置OSX 10.7.4 Eclipse Indigo,Pydev,Tweepy-1.9

我认为这应该相对简单,但我一直都会收到错误。我想使用sys.path.append()指定Tweepy API但是PyDev一直向我显示“未解析的导入:tweepy”错误

我的代码

import sys
sys.path.append('/Applications/tweepy-1.9')
import tweepy

this上有几个类似的帖子,我看过但是他们似乎就是否链接到顶级文件或目录中的特定文件给出了相互矛盾的建议。

我的问题是我应该直接链接到我现在的顶级文件夹(/Applications/tweepy-1.9)还是直接链接到此文件夹中的特定文件? Machaku向我提供了一些关于related question的信息,说我可以做到这两点,但我必须创建一个名为“ init .py”的文件并链接到它。

我尝试了两种方法,但似乎都没有效果。

任何建议总是非常适合


错误

Traceback (most recent call last):
  File "/Users/brendan/Documents/workspace/Tweeter/src/rate_limit.py", line 13, in <module>
    print api.rate_limit_status()
  File "build/bdist.macosx-10.5-fat3/egg/tweepy/binder.py", line 185, in _call
    return method.execute()
  File "build/bdist.macosx-10.5-fat3/egg/tweepy/binder.py", line 149, in execute
    raise TweepError('Failed to send request: %s' % e)
tweepy.error.TweepError: Failed to send request: [Errno 61] Connection refused

tweepy-1.9文件结构

  • tweepy-1.9

    • 构建

      • bdist.macosx-10.5-FAT3
      • LIB
        • tweepy
          • init .py (在“init”的两侧都有2个下划线)
          • api.py
          • auth.py
          • binder.py
          • cache.py
          • cursor.py
          • error.py
          • models.py
          • oauth.py
          • parsers.py
          • streaming.py
          • utils.py
    • DIST

      • tweepy-1.9-py2.7.egg
    • PKG-INFO
    • 自述
    • setup.cfg
    • tweepy
      • init .py (在“init”的两侧都有2个下划线)
      • api.py
      • auth.py
      • binder.py
      • cache.py
      • cursor.py
      • error.py
      • models.py
      • oauth.py
      • parsers.py
      • streaming.py
      • utils.py
    • tweepy.egg-信息
      • dependency_links.txt
      • PKG-INFO
      • SOURCES.txt
      • top_level.txt
      • zip_safe

1 个答案:

答案 0 :(得分:3)

鉴于堆栈跟踪,找到了您的Tweepy库,因此您的sys.path.append已经有效。但是,如果您阅读最后一行,

tweepy.error.TweepError: Failed to send request: [Errno 61] Connection refused

错误似乎是图书馆无法连接到Twitter服务。

关于放入sys.path的内容,它应该是包含顶级包所在目录的文件夹。例如,如果我有以下结构

src
 | my_package
 |     | __init__.py
 |     | module_1.py
 |     | module_2.py

我希望能够from my_package import module_1,然后sys.path必须包含src的绝对路径。此外,必须存在__init__.py文件才能使my_package成为Python包。

但是,动态更新sys.path绝对不是推荐的方法,可以从另一个Python程序访问python包和模块。

有更好的解决方案:

  • 按照Tweepy install guide中的建议调用python setup.py install(最好使用virtualenv

  • 更新PYTHONPATH以包含Tweety库的根路径。

  • 使用site module

  • 读取的.pth个文件

您可以在Installing Python Modules上的Python文档中找到更多详细信息,尤其是Modifying Python's search path section