检索 Python 单个脚本的要求

Mem*_*mmo 16 python pip python-3.x

我想知道如何从单个 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)
Run Code Online (Sandbox Code Playgroud)

然而,上面的这段代码让我返回了本地安装的所有 Python 框架。我想提取为脚本的必然要求,为了能够部署最终的应用程序。
我希望我很清楚。

Jos*_*ata 18

pipreqs 使用简单

安装:

pip install pipreqs

在脚本的同一文件夹中的 linux 中使用:

pipreqs .

然后requirements.txt文件被创建

点子主页:

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


Kum*_*tam 5

您可以使用“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))
Run Code Online (Sandbox Code Playgroud)