![](/img/trans.png)
[英]Registering a Prometheus metric in Python ONLY if it doesn't already exist
[英]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.