Python jupyter笔记本中的软件包输出列表
我正在尝试导出Anaconda Jupyter笔记本上安装的软件包列表Python jupyter笔记本中的软件包输出列表,python,jupyter-notebook,Python,Jupyter Notebook,我正在尝试导出Anaconda Jupyter笔记本上安装的软件包列表 a='help('modules') 打开('output.txt,'w')作为f: f.write(str(a)) 这将生成一个文本为“None”的输出文件 任何帮助都将不胜感激试试这个 import types def imports(): for name, val in globals().items(): if isinstance(val, types.ModuleType):
a='help('modules')
打开('output.txt,'w')作为f:
f.write(str(a))
这将生成一个文本为“None”的输出文件
任何帮助都将不胜感激试试这个
import types
def imports():
for name, val in globals().items():
if isinstance(val, types.ModuleType):
yield val.__name__
excludes = ['builtins', 'types', 'sys']
imported_modules = [module for module in imports() if module not in excludes]
clean_modules = []
for module in imported_modules:
sep = '.' # to handle 'matplotlib.pyplot' cases
rest = module.split(sep, 1)[0]
clean_modules.append(rest)
changed_imported_modules = list(set(clean_modules)) # drop duplicates
pip_modules = !pip freeze # you could also use `!conda list` with anaconda
for module in pip_modules:
name, version = module.split('==')
if name in changed_imported_modules:
print(name + '\t' + version)
您可以使用from contextlib库来捕获标准输出。代码未按预期运行的原因是help
不返回任何内容,它只是“打印”
在Linux上,您还可以直接执行!conda list>output.txt
from contextlib import redirect_stdout
with open('output.txt', 'w') as f:
with redirect_stdout(f):
help('modules')