11

Scrapy というモジュールをインストールしようとしています。を使用してインストールしました

pip install Scrapy

/usr/local/lib/python2.7/site-packages に「scrapy」フォルダーが表示されますが、Python プログラムにインポートしようとすると、その名前のモジュールがないと表示されます。なぜこれが起こっているのかについてのアイデアはありますか?

編集: pip コマンドの出力は次のとおりです。

    Downloading/unpacking Scrapy
  Downloading Scrapy-0.20.0.tar.gz (745kB): 745kB downloaded
  Running setup.py egg_info for package Scrapy

    no previously-included directories found matching 'docs/build'
Requirement already satisfied (use --upgrade to upgrade): Twisted>=10.0.0 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): w3lib>=1.2 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): queuelib in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): lxml in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): cssselect>=0.9 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /usr/local/lib/python2.7/site-packages (from Twisted>=10.0.0->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): six>=1.4.1 in /usr/local/lib/python2.7/site-packages (from w3lib>=1.2->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python2.7/site-packages/setuptools-1.1.6-py2.7.egg (from zope.interface>=3.6.0->Twisted>=10.0.0->Scrapy)
Installing collected packages: Scrapy
  Running setup.py install for Scrapy
    changing mode of build/scripts-2.7/scrapy from 644 to 755

    no previously-included directories found matching 'docs/build'
    changing mode of /usr/local/bin/scrapy to 755
Successfully installed Scrapy
Cleaning up...

/usr/local/bin/scrapy を実行すると、コマンドの使用法と使用可能なコマンドが表示されます。/usr/local/bin に python2.7 と python2.7-32 があることに気付きました。Mavericks に問題があったため、32 ビット バージョンをインストールしたことを覚えています。

の出力は次のpython /usr/local/bin/scrapyとおりです。

Traceback (most recent call last): File "/usr/local/bin/scrapy", line 3, in <module> from scrapy.cmdline import execute ImportError: No module named scrapy.cmdline 

そしてhead /usr/local/bin/scrapy

#!/usr/local/opt/python/bin/python2.7 from scrapy.cmdline import execute execute()
4

5 に答える 5

1

他のすべてが失敗した場合は、いつでも環境変数 PYTHONPATH を設定できます (ヘルプについては、ディレクトリを PYTHONPATH に永続的に追加するを参照)、Scrapy をインストールしたパスに設定します。(virtualenv を使用していない場合は保留中です。使用している場合は、OS も提供することをお勧めします)

于 2013-11-20T18:48:09.387 に答える
0

Python パスにインストールされている Scrapy モジュールは、Scrapy プロジェクト ディレクトリをブートストラップする実行可能ファイルのようです。

スクレイピー実行可能ファイルの Python コードは次のようになります。

   #!/usr/bin/env python

   from scrapy.cmdline import execute
   execute()

これは、独自の Python プロジェクト モジュールにインポートするのではなく、コマンド ラインから実行することを目的としています。

プロジェクトのドキュメントによると、次の構文で Scrapy 実行可能ファイルを実行しています。

scrapy startproject <your-project-name>

次のディレクトリ構造を持つ Scrapy プロジェクトをブートストラップします:

your-project-name/
scrapy.cfg
tutorial/
    __init__.py
    items.py
    pipelines.py
    settings.py
    spiders/
        __init__.py
        ...

ドキュメントには、独自のスパイダー、リンク エクストラクタなどを作成して実行する方法、およびアプリケーションで取得したデータを操作する方法を示す例が多数あります。それらはそれぞれ、scrapy パッケージのサブディレクトリからの適切な Python インポートを示しており、起動して実行することができます。

これが役立つことを願っています。

于 2013-11-21T02:45:58.780 に答える
0

Ubuntu で実行する場合:

公式のUbuntu パッケージを使用してください。これは、すべての依存関係を既に解決しており、最新のバグ修正で継続的に更新されています。

必要に応じて、問題が解決したとしても、virtualenvwrapperを使用して仮想環境に python ライブラリをインストールし、apt-get インストール ログを調べて、追加されたツールを見つけてから、 scrapy を削除することをお勧めします。 python ライブラリを削除し、仮想環境に再インストールします。ピップを使用して

于 2013-11-18T05:59:45.250 に答える