首页  >  文章  >  后端开发  >  我们可以在 Python setuptools 中执行安装后脚本吗?

我们可以在 Python setuptools 中执行安装后脚本吗?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-15 05:06:02240浏览

Can we execute a post-installation script in Python setuptools?

Python setuptools 中的自定义安装后脚本

问题:

我们可以执行安装后脚本作为 setuptools setup.py 文件的一部分?该脚本应在本地执行 python setup.py install 或 pip install 后自动运行来自 PyPI。

答案:

要求:

请注意,此解决方案仅在从源发行版安装期间有效( zip、tarball)或以可编辑模式安装时。从二进制轮子(.whl)安装时它不会执行。

透明解决方案:

要实现所需的行为,我们可以修改 setup.py 文件,而无需创建附加文件。我们需要考虑开发/可编辑模式和安装模式的不同场景:

1.开发模式:

创建一个 PostDevelopCommand 类,该类扩展 setuptools.command.develop 并包含您的安装后脚本:

from setuptools import setup
from setuptools.command.develop import develop

class PostDevelopCommand(develop):
    def run(self):
        develop.run(self)
        # Your post-installation script or function can be called here

2。安装模式:

创建一个 PostInstallCommand 类,该类扩展 setuptools.command.install 并包含您的安装后脚本:

from setuptools import setup
from setuptools.command.install import install

class PostInstallCommand(install):
    def run(self):
        install.run(self)
        # Your post-installation script or function can be called here

3.与 setup.py 集成:

将以下行添加到 setup.py 中的 setup() 函数中:

setup(
    ...

    cmdclass={
        'develop': PostDevelopCommand,
        'install': PostInstallCommand,
    },

    ...
)

这将启用安装后脚本的执行或在从源安装或在可编辑模式下自动运行。

以上是我们可以在 Python setuptools 中执行安装后脚本吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn