【发布时间】:2011-07-20 03:53:17
【问题描述】:
从 python 脚本中临时隐藏已安装模块以测试它如何处理未安装模块的环境的最佳方法是什么?
我想避免为了测试而卸载模块。
【问题讨论】:
-
@Michael:你的意思是不导入它?我想我可以这样做,只是不会测试我的条件导入,这没什么大不了的。
标签: python testing module import dependencies
从 python 脚本中临时隐藏已安装模块以测试它如何处理未安装模块的环境的最佳方法是什么?
我想避免为了测试而卸载模块。
【问题讨论】:
标签: python testing module import dependencies
import sys
sys.modules['numpy']=None
设置sys.modules['numpy']=None让Python认为它已经尝试过导入numpy但失败了。导入numpy 的后续尝试现在引发ImportError:
try:
import numpy
except ImportError as err:
print(err)
# No module named numpy
删除sys.modules['numpy'] 允许numpy 正常导入:
del sys.modules['numpy']
import numpy
【讨论】:
更改您的 Python 路径。
sys.path 中的目录顺序显示了搜索的顺序。
您可以在测试中更改sys.path 以更改搜索顺序。
【讨论】: