Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python jupyter笔记本中的软件包输出列表_Python_Jupyter Notebook - Fatal编程技术网

Python 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):

我正在尝试导出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):
            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')