关于cmdclass参数,pip3和`python3 setup.py install`之间的区别

gplssm:

我试图配置我的软件包,以便在安装过程中执行脚本。因此,我从setuptools.command install继承并创建了我的自定义类,ActionOnInstall以便在安装软件包时进行操作。这个类是通过setuptools的称为setup()参数cmdclass描述这里

这样的setup.py文件的最小示例如下

from setuptools import find_packages, setup
from setuptools.command.install import install


class ActionOnInstall(install):
    def run(self):
        print("Call install.run(self) works!")
        install.run(self)


setup(name='name',
      cmdclass={
      'install': ActionOnInstall})

通过执行构建程序包

pip3 install <path-to-dir-with-setup.py>

运行成功,但不执行中指定的命令ActionOnInstall.run()更直接地通过以下方式调用此setup.py

python3 setup.py install 

执行中指定的命令ActionOnInstall.run()

然后,我发现自己在问:这两种安装软件包的方法的实际区别是什么?我知道,就像其他帖子告诉我们的那样,pip使软件包安装变得更轻松。但是cmdclasssetup()没有解释这两种方法如何不同地对待论点因此,非常感谢您的来信。

博士:

pip调用您的setup.py,但它会重定向stdout / stderr。要在pip下测试setup.py,请在固定位置写入文件:

class ActionOnInstall(install):
    def run(self):
        print("Call install.run(self) works!", file=open('/tmp/debug.log', 'w'))
        install.run(self)

之后查看/tmp/debug.log pip install .

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

'python setup.py install'和'pip install'之间的区别

'python setup.py install'和'pip install'之间的区别

pip3 install couchdbkit 失败,出现“命令”python setup.py egg_info”

pip3 setup.py install_requires PEP 508 git URL for private repo

setup.py中的entry_points / console_scripts和脚本之间的区别?

“ python setup.py test”与“ pytest {package}”之间有什么区别?

setup.py:入口点和cmdclass有什么区别?

“ pip install --editable ./” vs“ python setup.py开发”

Python 3:setup.py:执行所有操作的pip安装(build_ext + install)

setUp()和setUpBeforeClass()之间的区别

Python setup.py - 运行 setup.py install 时不要构建轮子

python setup.py install忽略install_requires

pip3和python3 -m pip之间的区别

“ python setup.py install”不会创建入口点

docker 和 setup 安装程序之间的区别

python setup.py卸载

Minitest中“ def setup”和“ setup do”之间的区别?

在开发时,为什么pip install会比python setup.py install慢得多?

setup.py install os依赖项

setup.py脚本使用find_packages()与“ requirements.txt”之间的区别

web3.py中sendTransaction和sendRawTransaction之间的区别

从特定的setup.py安装pip

通过Pip从setup.py打印消息

为什么“ pip install”会在setup.py中引发SyntaxError?

Pip不会使用install_requires安装在setup.py中声明的依赖项

何时在setup.py中使用pip需求文件而不是install_requires?

尝试安装pyodbc wheel文件时缺少pip install setup.py

setup.py的版本依赖性错误,但通过pip install成功安装

从setup.py运行所需的.msi安装程序,以便通过pip install运行