当编写Python包时,我知道如何在
我是否必须在
编辑:我只想能够检查外部工具是否可用,如果不可用,邀请用户自行安装它们。我不想在安装包时管理外部工具的安装。
贡献摘要:似乎
setup.py
文件中使用setuptools.setup
中的install_requires
字段来指定其他所需的Python包。但是,我不知道如何指定非Python包的外部系统依赖项,即像git
或cmake
这样的命令(示例),我的包可以通过subprocess.call
或subprocess.Popen
调用?我是否必须在
setup.py
文件中手动检查命令的可用性,还是有一种花哨的方法可以指定系统要求?编辑:我只想能够检查外部工具是否可用,如果不可用,邀请用户自行安装它们。我不想在安装包时管理外部工具的安装。
贡献摘要:似乎
setuptools
不支持此功能,最好在运行时进行检查(参见评论和答案)。
.deb
, yum/.rpm
, _pacman_等)。 - sinorocsetup.py
中,但是setup.py
并不总是在安装时执行:例如,如果你的项目被打包为一个 wheel_,那么它根本不包含setup.py
文件。即使你没有将项目作为 wheel 分发,如果我没记错的话,_pip 也会在后续的安装中本地构建一个 _wheel_。因此,我认为在运行时更加安全。 - sinoroc