我使用Distutils 分发我的包裹,非常方便。现在我想在用户通过pip install mypackage
之类的命令安装我的包后执行脚本或函数。我想我可以找到像register(funtionCalledAfterPackageInstalled)
这样的API,就像atexit.register(someFunction)
一样,它经常在python中用来在应用程序退出之前执行一个函数,但是我失败了。所以我想问:有没有任何一种方法可以做这样的事情?
背景:我在我的软件包中引用了一个经常更新的dll,我不想把它放在我的软件包中,所以我不需要关心更新。我只是希望在用户安装我的软件包后通过函数调用自动下载它。而且环境是WINDOWS,所以linux pakcage管理工具无法正常工作。
答案 0 :(得分:1)
在setup()
文件中调用setup.py
后,您可以调用另一个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()