我有一段代码可以在许多不同的系统上运行。在某些系统上,模块pyodbc
不存在,所以我退回到pymssql
。
我想在同时安装了这两个模块的环境中测试回退过程。
增加了难度:pyodbc
不在我的代码中的任何地方导入,仅导入sqlalchemy
内部。
库的细节无关紧要。我只是想避免必须运行pip来删除和更换pyodbc
模块,然后必须进行两次测试。
有什么办法欺骗缺少的模块?
答案 0 :(得分:1)
您可以通过sys.modules
来伪装缺少模块:
>>> import sys
>>> sys.modules['pyodbc'] = None
>>> import pyodbc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: import of 'pyodbc' halted; None in sys.modules
(从this answer窃取)