python - 如何通过 python setuptools 执行脚本或函数?

标签 python pip setuptools

我使用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/

相关文章:

python - 在python中生成给定范围内的所有日期

python - 根据单个值对元素进行分组

python - 如何打包分发python程序(.py源码),让其他开发者可以方便的安装所有需要的依赖?

pip - 如何在 Apple M1 Silicon 笔记本电脑上安装 GRPCIO?

python - 为什么 py2app .app 的启动时间比同一个 python 程序要长?

python - while循环不会在python中停止

python - 如何使用Python在BeautifulSoup中提取同一div中具有相同标签的元素?

python - pip freeze 中没有显示使用 pip 安装的软件包?

Python包: data files of a subpackage

python - 获取 Gitlab 的持续集成来编译用 C 编写的 Python 扩展