【问题标题】:Running easy_install along with / before python setup.py sdist在 python setup.py sdist 之前与 / 一起运行 easy_install
【发布时间】:2020-09-20 05:47:57
【问题描述】:

我有一个必须使用easy_install 安装的依赖包

easy_install deps/my_deps_package.egg

我目前的步骤:

  • 创建虚拟环境
  • 安装依赖:easy_install deps/my_deps_package.egg
  • 运行安装程序并安装包:python setup.py sdist && pip install -e .[dev] dist/my_package.tar.gz

它现在工作正常,但我无法将my_deps_package.egg 添加到requirements.txt 并且我想要在运行python setup.py sdist 时,它应该安装所有它。

我正在使用tox 运行测试,似乎没有选项在安装包之前运行easy_install

是否可以将easy_install 与python setup.py 进程或tox 一起使用?

【问题讨论】:

    标签: python python-2.7 setuptools tox


    【解决方案1】:

    tox 通常使用一个安装工具/命令,可以使用install_command 进行设置。它会将deps 中定义的包和您的包都传递给install_command(默认为python -m pip install {opts} {packages}(ARGV))。因此,不可能有两个不同的安装命令。因此,我们将不得不创建一个解决方法。

    一种方法可以是:

    1. 关闭常规安装流程。 (skipp_install = true)
    2. 使用 commands_pre 以正确的顺序执行所有安装命令。
    3. 使用常规的commands 来完成您想做的任何事情。
    [testenv]
    skip_install = true
    commands_pre = 
        easy_install deps/my_deps_package.egg
        python setup.py sdist
        python -m pip install -e .[dev] dist/my_package.tar.gz
    commands =
        pytest
    

    这样你仍然可以实现一些关注点分离,因为你的安装命令只存在于commands_pre

    奖金:

    [testenv:something]
    # This should inherite the pre_commands from [testenv]
    commands = 
        # Do something else :)
        ls
    

    【讨论】:

      猜你喜欢
      • 2020-08-02
      • 2016-01-28
      • 2021-03-05
      • 2023-03-12
      • 2019-06-25
      • 2016-07-27
      • 2014-01-24
      • 2018-07-31
      • 1970-01-01
      相关资源
      最近更新 更多