web-dev-qa-db-ja.com

pdfminer-ImportError:pdfminer.pdfdocumentという名前のモジュールがありません

CollectiveAccessで動作するようにpdfMinerをインストールしようとしています。私のホスト(pair.com)から、このクエストに役立つ次の情報が提供されました。

コンパイルするとき、おそらく指示する必要があるでしょう
上記のアカウントスペースを使用するためのインストールであり、インストールを試みないでください
オペレーティングシステムのディレクトリに。通常、「-
インストールコマンドの最後にある home =/usr/home/username/pdfminer "でそれが可能になります。

インストールしようとしたとき、私はこの指示に従いました。結果は次のとおりです。

running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
changing mode of /usr/home/username/pdfminer/bin/latin2ascii.py to 755
changing mode of /usr/home/username/pdfminer/bin/pdf2txt.py to 755
changing mode of /usr/home/username/pdfminer/bin/dumppdf.py to 755
running install_Egg_info
Removing /usr/home/username/pdfminer/lib/python/pdfminer-20140328.Egg-info
Writing /usr/home/username/pdfminer/lib/python/pdfminer-20140328.Egg-info

私はそれで何も悪いことは見ていません(私はPythonに非常に慣れていません)が、サンプルコマンド$ pdf2txt.py samples/simple1.pdfを実行しようとすると、次のエラーが発生します:

Traceback (most recent call last):   File "pdf2txt.py", line 3, in <module>
    from pdfminer.pdfdocument import PDFDocument ImportError: No module named pdfminer.pdfdocument

python 2.7.3を実行しています。ルート(共有ホスティング)からインストールできません。 pdfminerの最新バージョンである2014/03/28です。同様の問題に関する投稿をいくつか見ました(「モジュールの名前はありません。。。。」ですが、まったく同じものはありません。提案された解決策は役に立ちません(Sudoを使用したインストール-オプションではありません。python(これは問題ではないようです)など)。

それとも、これは私のホストへの質問ですか? (つまり、セットアップに関して何かがおかしい、または異なる)

6
KLL

パッケージpdfminerは非標準/非デフォルトの場所にインストールされているため、Pythonはそれを見つけることができません。それを使用するには、 'pythonpath'に追加する必要があります。3つの方法:

  1. 実行時に、これをスクリプトに入れますpdf2txt.py

    import sys
    # if there are no conflicting packages in the default Python Libs =>
    sys.path.append("/usr/home/username/pdfminer")
    

    または

    import sys
    # to always use your package lib before the system's =>
    sys.path.insert(1, "/usr/home/username/pdfminer")
    

    注:--homeで指定されたインストールパスは、これだけでなく、インストールする可能性のあるすべてのパッケージのLibとして使用されます。そのフォルダーを削除し、-- home=/usr/home/username/myPyLibs(または任意の一般名)を使用して再インストールする必要があります。これにより、そのインストールパスで他のパッケージをインストールするときに、ローカルLibに追加するパスが1つだけで済みます。それらをインポートします:

    import sys
    sys.path.insert(1, "/usr/home/username/myPyLibs")
    
  2. スクリプトを実行する前に、それをPYTHONPATHに追加します。

    export PYTHONPATH="${PYTHONPATH}:/usr/home/username/myPyLibs"
    

    そして、それを~/.bashrcファイル(/usr/home/username/.bashrc)または.profileに適宜入れます。これは、コンソールから実行されないプログラムでは機能しない場合があります。

  3. VirtualEnvを作成し、パッケージをインストールします 必要です。

5
aneroid

私はこのようなエラーがありました:

No module named 'pdfminer.pdfinterp'; 'pdfminer' is not a package

私の問題は、スクリプトにpdfminer.pyという名前を付けたということでした。これは、わからない理由で、Python元のpdfminerパッケージファイルに使用して試しました。それをコンパイルします。

名前を変更スクリプトを別のものに変更し、すべての*.pycファイルと__pycache__ディレクトリを削除すると、問題は解決しました。

3
Farzin Faridfar