我正在努力使我编写的脚本更具可移植性。
我的脚本中使用的一些工具需要安装某些模块。我已经能够让脚本自己安装模块,但希望有一种机制可以检查它们是否已经安装,并且只在丢失时才尝试安装。
我确信这是可能的,但我似乎找不到解决方案。
请您参考如下方法:
对此的标准解决方案是将您的脚本变成一个模块,并且declare its dependencies in the setup.py of the module.
from setuptools import setup
setup(name='foo',
...
install_requires=['dependency', 'other', ...])
一个支持性的、较弱的约定是在 requirements.txt 中保留一个列表,这样你就可以
pip install -r requirements.txt
让您自己的脚本来完成这些杂务通常没有用或没有必要;现有的打包基础设施已经提供了您所需要的,并且是操作和管理包依赖性的自然点。
从历史上看,由于不同的打包机制在 Python 生态系统中争夺主导地位,因此存在一些动荡,但现在似乎已经在 setuptools 和 pip 上解决了。
