我想知道如何从单个python脚本中提取需求。在导入之后,我立即在文件开头尝试了以下方式:
try:
from pip._internal.operations import freeze
except ImportError: # pip < 10.0
from pip.operations import freeze
x = freeze.freeze()
for p in x:
print(p)
但是,上面的代码片段给了我所有本地安装的Python框架。我想只提取 脚本的必要要求,以便能够部署最终应用程序。
我希望我很清楚。
答案 0 :(得分:10)
pipreqs易于使用
安装:
pip install pipreqs
使用:
pipreqs .
然后创建了requirements.txt文件
pip主页:
答案 1 :(得分:0)
您可以使用“ modulefinder” python模块轻松完成此操作。
我认为您想打印脚本所需的所有模块。 因此,您可以参考
http://blog.rtwilson.com/how-to-find-out-what-modules-a-python-script-requires/
或为方便起见,代码在这里:
from modulefinder import ModuleFinder
f = ModuleFinder()
# Run the main script
f.run_script('run.py')
# Get names of all the imported modules
names = list(f.modules.keys())
# Get a sorted list of the root modules imported
basemods = sorted(set([name.split('.')[0] for name in names]))
# Print it nicely
print ("\n".join(basemods))