Retrieving the requirements of a Python single script

孤街浪徒 提交于 2020-06-14 07:13:51

问题


I would like to know how to extract the requirements from a single python script. I tried the following way, at the beginning of my file, immediately after the imports:

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)

The piece of code above, however, gives me back all the Python frameworks installed locally. I would like to extract only the necessary requirements for the script, in order to be able to deploying the final application.
I hope I was clear.


回答1:


You can do this easily with 'modulefinder' python module.

I think you want to print all the modules required by a script. So, you can refer to

http://blog.rtwilson.com/how-to-find-out-what-modules-a-python-script-requires/

or for your ease the code is here:


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




回答2:


pipreqs is simple to use

install:

pip install pipreqs

in linux in the same folder of your script use:

pipreqs .

then the requirements.txt file is created

pip home page:

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



来源:https://stackoverflow.com/questions/54670995/retrieving-the-requirements-of-a-python-single-script

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!