簡體   English   中英

僅當Python中的模塊尚不存在時才導入該模塊

[英]Import a module in Python only if it doesn't already exist

我想在我的Python代碼中使用一個模塊,例如BeautifulSoup,所以我通常將它添加到文件的頂部:

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

但是如果使用我的庫的開發人員已經在他們的機器上安裝了BeautifulSoup呢? 我想修改myscript.py,以便檢查是否已安裝BeautifulSoup,如果已安裝,請使用標准模塊。 否則,請使用附帶的一個。

使用Pseudo-python:

if fBeautifulSoupIsInstalled:
    from BeautifulSoup import BeautifulSoup, CData
else:
    from BeautifulSoup.BeautifulSoup import BeautifulSoup, CData

這可能嗎? 如果是這樣,怎么樣?

通常,以下模式用於在Python中處理這種情況。

首先將您的BeautifulSoup模塊重命名為其他內容,例如MyBeautifulSoup

然后:

try:
    import BeautifulSoup # Standard
except ImportError:
    import MyBeautifulSoup as BeautifulSoup # internal distribution

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM