0

OSX10.7.4のセットアップEclipseIndigo、Pydev、Tweepy-1.9

これは比較的簡単なはずだと思いましたが、エラーが発生し続けます。sys.path.append()を使用してTweepy APIを指定しようとしていますが、PyDevは「未解決のインポート:tweepy」エラーを表示し続けます

私のコード

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

私が見たこれに関するいくつかの同様の投稿がありますが、それらはトップレベルのファイルにリンクするか、ディレクトリ内の特定のファイルにリンクするかについて矛盾するアドバイスを与えているようです。

私の質問は、現在のトップレベルのフォルダー(/Applications/tweepy-1.9)に直接リンクする必要がありますか、それともこのフォルダー内の特定のファイルにリンクする必要がありますか?Machakuから、両方を実行できるという関連質問に関する情報が提供されましたが、「<strong>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
          • バインダー.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
    • README
    • setup.cfg
    • tweepy
      • init .py (「init」の両側に2つのアンダースコアがあります)
      • api.py
      • auth.py
      • バインダー.py
      • cache.py
      • cursor.py
      • error.py
      • models.py
      • oauth.py
      • parsers.py
      • Streaming.py
      • utils.py
    • tweepy.egg-info
      • 依存関係_links.txt
      • PKG-INFO
      • SOURCES.txt
      • top_level.txt
      • zip_safe
4

1 に答える 1

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ます。また、Pythonパッケージを作成するには、ファイルが存在している必要があります。sys.pathsrc__init__.pymy_package

ただし、動的に更新することsys.pathは、Pythonパッケージおよびモジュールを別のPythonプログラムからアクセスできるようにするための推奨される方法ではありません。

はるかに優れた解決策があります:

  • python setup.py installTweepyインストールガイドで推奨されているように(できればvirtualenvを使用して)呼び出します

  • Tweetyライブラリへのルートパスを含めるようにPYTHONPATHを更新します。

  • サイトモジュール.pthによって読み取られるファイルを使用する

詳細については、Pythonモジュールのインストールに関するPythonドキュメント、特に「Pythonの検索パスの変更」セクションを参照してください。

于 2012-06-20T17:03:33.113 に答える