Python模块未显示在sys.modules中

Python模块未显示在sys.modules中,python,installation,packages,python-module,Python,Installation,Packages,Python Module,我通过解包tar.gz并运行setup.py安装了一些软件包 我正在查房 >>> import sys >>> '[packagename]' in sys.modules 但对于所有人来说,它总是说False。我缺少什么?sys.modules仅显示已加载到您的环境中的模块 这是一个将模块名称映射到模块的字典 已经加载的。这可以被操纵为强制 重新加载模块和其他技巧。但是,替换 字典不一定能按预期工作并删除 字典中的基本项可能会导致Python失败 要获得所

我通过解包tar.gz并运行setup.py安装了一些软件包

我正在查房

>>> import sys
>>> '[packagename]' in sys.modules

但对于所有人来说,它总是说
False
。我缺少什么?

sys.modules
仅显示已加载到您的环境中的模块

这是一个将模块名称映射到模块的字典 已经加载的。这可以被操纵为强制 重新加载模块和其他技巧。但是,替换 字典不一定能按预期工作并删除 字典中的基本项可能会导致Python失败

要获得所需的行为,您需要首先导入模块:

import sys
import packagename
'packagename' in sys.modules #True
安慰 如果您在控制台中,并且想要检查是否有可用的模块,只需尝试导入它。如果它不存在,您将得到一个错误:

>>> import packagename
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'packagename'

我在虚拟环境中执行了
conda update--all
,之后在“基本”环境中执行了,错误消失了。更新虚拟环境后,错误仍然存在。这就是为什么我认为它是由虚拟环境和“基本”环境中的两个不同版本(在我的例子中是numpy:
ImportError:parent'numpy'不在sys.modules
)引起的

try:
    import packagename
except ImportError:
    #handle the error