查询python笔记本的主机上有哪些库



在jupyter笔记本电脑中,如果python笔记本电脑的当前内核上安装了一些库,我可以很容易地使用python代码进行检查。

然而,也存在";主机";内核,它有自己的python环境(即调用jupyter notebook时启动的python进程(。根据主机上安装的库/扩展,可能无法在jupyter笔记本客户端本身上执行特定操作。

有没有一种方法可以从";客户端";笔记本感谢

您测试了!pip list还是!pip freeze

要列出pipenv环境中本地安装的软件包及其版本号,请cd到pipenv项目中,然后输入以下命令:

pipenv lock -r

我想您可以使用!pip list来显示当前env上安装的模块/库。但我不认为您可以查看扩展。

如果使用虚拟环境,请使用!pip list --local!pip freeze --local

这可以让你开始:

import sys
import os
for i in sys.path:
try:
print("->", i, ":")
print(repr(os.listdir(i or ".")))
except Exception:
print("can't list", i)
pass

注意,我的代码不是一个完整的解决方案,但它只是一个开始。我很快会尝试改进它,但即使是这样,开发自己的解决方案可能会立即对您有用。

它不做什么:

  • 它不确定是否找到了包含有效包的python文件或目录,或者是不可导入的文件或目录
  • 它跳过压缩的包(比如这个项目,它可能在sys.path:/home/pyodide/lib/python39.zip中(
  • 它不试图找到内置包(那些编译成Python本身的包(。其中大部分已经加载,所以您可以在sys.modules中找到它们

如果你需要测试单个包,而不是得到一个完整的列表:你最好在try/except语句中使用"import":

try:
import something
except ImportError:
pass
# do what you want if the package isn't available

如果我理解正确,你可以运行:

help("modules")

或者您可以使用pydoc进行工作:

import pydoc
!pydoc modules

我相信!pip列表应该可以工作——如果不能,那么pydoc很可能会工作,见上文。

最新更新