我使用Distutils 分发我的包裹,非常方便。现在我想在用户通过 pip install mypackage
这样的命令安装我的包后执行脚本或函数。我想我可以找到像register(funtionCalledAfterPackageInstalled)
这样的API,就像atexit.register(someFunction)
一样,它经常在python中用于在应用程序退出之前执行一个函数,但我失败了。所以我想问:有什么优雅的方法来做这样的事情吗?
背景:我在我的包中引用了一个经常更新的dll,并且我不想将它放在我的pakcage中,所以我不需要关心更新。我只是希望在我的用户安装我的包后通过函数调用自动下载它。而且环境是WINDOWS,所以linux pakcage管理工具不起作用。
最佳答案
在 setup.py
文件中调用 setup()
后,您可以调用另一个 Python 函数或方法。因此,您可以运行 python 函数来制作您需要的内容,或者通过示例使用 subprocess
执行外部命令。
结果会是这样的:
from distutil.core import setup
import subprocess
setup( ... stuff ...)
# Call external command
subprocess.Popen('command here', ... attrs ...)
# Or another Python function you wrote
my_function()
关于python - 如何通过 python setuptools 执行脚本或函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42064893/