<p>在我看来,最好的方法是在安装时检查用户是否有这个特定的*nix命令。在</p>
<p>如果要使用distutils分发包,要安装它,必须执行以下操作:</p>
<blockquote>
<p>python setup.py build
python setup.py install </p>
</blockquote>
<p>或者干脆</p>
<blockquote>
<p>python setup.py install (in that case python setup.py build is implicit)</p>
</blockquote>
<p>要检查是否安装了*nix命令,可以在设置.py像这样:</p>
<pre><code>from distutils.core import setup
from distutils.command.build import build as _build
class build(_build):
description = "Custom Build Process"
user_options= _build.user_options[:]
# You can also define extra options like this :
#user_options.extend([('opt=', None, 'Name of optionnal option')])
def initialize_options(self):
# Initialize here you're extra options... Not needed in your case
#self.opt = None
_build.initialize_options(self)
def finalize_options(self):
# Finalize your options, you can modify value
if self.opt is None :
self.opt = "default value"
_build.finalize_options(self)
def run(self):
# Extra Check
# Enter your code here to verify if the *nix command is present
.................
# Start "classic" Build command
_build.run(self)
setup(
....
# Don't forget to register your custom build command
cmdclass = {'build' : build},
....
)
</code></pre>
<p>但是,如果用户在安装软件包后卸载了所需的命令,该怎么办?要解决这个问题,唯一“好”的解决方案是使用诸如deb或rpm之类的打包系统,并在命令和包之间设置依赖关系。在</p>
<p>希望这有帮助</p>