モジュールを使用したいと思います。私のPythonコードでBeautifulSoup、ので、私は通常、ファイルの先頭に以下を追加:私は私が書いているモジュールを配布する際にモジュールがPythonでインポートされていない場合にのみインポートします。
from BeautifulSoup import BeautifulSoup
はしかし、他の人がBeautifulSoupを持っていないかもしれないので、私はちょうど含まれますそれそのような私のディレクトリ構造に:
今Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 9/19/2011 5:45 PM BeautifulSoup
-a--- 9/17/2011 8:06 PM 4212 myscript.py
、私の修正myscript.pyファイルがBeautifulSoupのローカルコピーを参照するために先頭に次のようになります。
from BeautifulSoup.BeautifulSoup import BeautifulSoup, CData
しかし、どのような場合DEV私のライブラリーを使用しているEloperは、すでに自分のマシンにBeautifulSoupをインストールしていますか? BeautifulSoupが既にインストールされているかどうかを確認するようにmyscript.pyを修正したい場合は、標準モジュールを使用します。それ以外の場合は、付属のものを使用してください。
使用して擬似パイソン:
if fBeautifulSoupIsInstalled:
from BeautifulSoup import BeautifulSoup, CData
else:
from BeautifulSoup.BeautifulSoup import BeautifulSoup, CData
これは可能ですか?もしそうなら、どうですか?
を撮影し:そしてMyBeautifulSoup
'Pythonはモジュールをインポートし、それを最初にチェックモジュールレジストリ(sys.modules)にモジュールがすでにインポートされているかどうかを確認してください。その場合、Pythonは既存のモジュールオブジェクトをそのまま使用します。 ' – mwan
それをインポートしてみてください。動作しない場合は、ImportErrorをキャッチし、ローカルコピーからインポートしてください。あなたのローカルコピーに別の名前(myBeautifulSoup)を付けて、ユーザがインストールしたモジュールを隠さないようにします。 –
@mwan:Benは既にインポート済みかどうかを知る必要はありません。ベンは既にシステムに*あるかどうかを知る必要があります。 –