1

次のように bs4 をインポートするスクリプトがあります。

from bs4 import BeautifulSoup

私は bs4 をインストールしていません。むしろ、スクリプトと同じディレクトリに( http://www.crummy.com/software/BeautifulSoupbs4から) のディレクトリを含めました。beautifulsoup4-4.4.1

このスクリプトをコマンド プロンプトから直接実行すると (Windows 7 VirtualBox VM 上で)

python myscript.py

インポートは問題なく機能します (スクリプトの残りの部分も同様です)。

しかし、このスクリプトは、他の Python コードからモジュールの一部として呼び出される、より大きなフレームワークから実行する必要があります。フレームワークは私の会社が所有しているため、これについてこれ以上具体的に説明することはできません。

私のスクリプトは、bs4 をインポートするところまで正しく呼び出されます。次のエラーが表示されます。

No module named bs4.element

このコードは、上記と同じ Windows 7 VirtualBox VM で実行されます。bs4ディレクトリがオンになっていることを確認しましたPYTHONPATH(パスはC:\Users\me\path-to-bs4)。一番上にprintステートメントを追加するとbs4/__init__.py、出力に結果が表示されるため、bs4が見つかったことがわかります。

私はこの問題の原因について途方に暮れています。誰かが私を正しい方向に向けることができますか?

Python 2.7.6 を使用しています。

4

1 に答える 1

0

パス上のどこかでbs4/element.py呼び出された別の Python スクリプトによってマスクされている可能性があります。element.py

誰かが親切にこの回答をより良い説明で改善したり、正しいことを確認したりしますか?

この可能性は他の SO の質問でも言及されていますが、私たちのフレームワークにはelement.py. ただし、競合するスクリプトは、インポートする外部モジュールの一部である可能性もあります。

これがno module named bs4.elementエラーの原因ではない可能性もあります。

私の回避策は、pip以前は VM に bs4 をインストールしていたことです。

于 2015-11-25T14:12:56.190 に答える