检索Python单个脚本的要求

时间:2019-02-13 13:09:48

标签: python python-3.x pip

我想知道如何从单个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框架。我想只提取 脚本的必要要求,以便能够部署最终应用程序。
我希望我很清楚。

2 个答案:

答案 0 :(得分:10)

pipreqs易于使用

安装:

pip install pipreqs

在Linux中,与脚本相同的文件夹中的

使用:

pipreqs .

然后创建了requirements.txt文件

pip主页:

https://pypi.org/project/pipreqs/

答案 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))