【问题标题】:In setup.py, how to run a system command before any pip install?在 setup.py 中,如何在任何 pip 安装之前运行系统命令?
【发布时间】:2021-03-15 17:45:30
【问题描述】:

我正在使用setup.py 创建一个 Python 包,并且我需要在 pip 尝试安装依赖项之前运行某些 shell 命令。事实上,我需要这些命令在 setuptools 对 PyPI 进行网络调用之前运行。

(具体情况是安装此软件包的系统有一个互联网网关,需要安装证书。我需要在 setuptools 连接到互联网之前应用此系统更改)

我知道cmdclass -- 这些命令是否在install_requires 阶段之前运行

【问题讨论】:

  • 提示:no way for a wheel,仅适用于 sdist。对于 sdist,您可以以任何方式写您的 setup.py;您可以在调用 setup() 之前运行您的命令。

标签: pip setuptools python-packaging


【解决方案1】:

您不能在安装时运行任意命令(对于comment to your questionphd 链接到的reasons)。

也许有一些技巧可以使它成为可能,但它们是不好的做法,甚至不值得麻烦。

我宁愿建议做的只是清楚地记录预安装步骤,也许自己编写一个包含自定义预安装命令和实际安装命令的 shell 脚本(或 Python 脚本)。

【讨论】:

    【解决方案2】:
    import os
    os.system('cmd /c "Your Command Prompt Command"')
    

    在 pip 安装代码之前将此代码写入 setup.py 文件

    【讨论】:

      猜你喜欢
      • 2018-01-28
      • 1970-01-01
      • 2021-04-25
      • 2021-05-20
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      相关资源
      最近更新 更多