2017-07-28 39 views
0

如何通过运行Python或IPython实例的自省来列出需要的软件包?在Python中通过自省列出所需的软件包

我经常从一个非常安装的conda环境开始开发,该环境具有完整的Anaconda发行版,并且安装了更多的完整版本。当我希望共享代码时,我希望能够为只包含当前加载在解释器中的包的conda吐出requirements.txt的pip或environment.yml

我该怎么做?

+2

建立从加载模块到包的关系将是一项复杂的任务。一般来说,我建议开始在空的环境下开发。 –

+1

@克劳斯不conda保持这样的映射? –

+0

很容易获得加载的模块的名称,但它们不一定是conda或pip所需的名称。许多内置和“私人”模块将在列表中。 –

回答

3

你可以使用python builtin包modulefinder来测试你的脚本的模块。例如:

from modulefinder import ModuleFinder 

finder = ModuleFinder() 
finder.run_script('bacon.py') 

print('Loaded modules:') 
for name, mod in finder.modules.items(): 
    print('%s: ' % name, end='') 
    print(','.join(list(mod.globalnames.keys())[:3])) 

print('-'*50) 
print('Modules not imported:') 
print('\n'.join(finder.badmodules.keys())) 
相关问题