python-3.x - setup.py 与 conda 安装的依赖项(不是 pip)

标签 python-3.x pip conda setup.py transitive-dependency

我正在研究提供 setup.py 的现有 Python 3 代码库。所以代码被安装为一个 Python 库。我试图让这个内部库安装它自己的依赖项(通常的数据科学库,例如 pandaspyodbcsqlalchemy 等)。

我想要这个内部库来处理这些依赖项并假设 如果安装了该库,则假定已安装所有可传递的依赖项 .我也想要 Anaconda ( conda ) 版本的包而不是 pip版本。

我从 requirements.txt 开始,但在 setup.py 中迅速转移到该领域:

  install_requires=[
      "pyodbc>=4.0.27",
      "sqlalchemy>=1.3.8",
      "pandas>=0.25.1",
      "requests>=2.22.0",
      "assertpy>=0.14",
      "cycler>=0.10.0",
  ]

但是,当我运行安装过程时:
  • 要么与 python setup.py install --record installed_files.txt
  • 或与 pip install .

  • 我看到有一些 gcc/C++ 编译显示关于 Python 轮子的日志(我不完全理解 Python 蛋和 Python 轮子的含义,但是如果 conda 可用,那么我应该使用 conda 版本而不是蛋/轮子因为那样我就不必处理 Python 代码下面的 C++ 代码了)。

    我真的更喜欢 conda将这些包含在一些 Python 代码中的 C++ blob 安装为库,例如pandas .
  • 是否有可能拥有 conda驱动 setup.py 中描述的安装过程所以我不处理 gcc ?
  • 我怎样才能确保依赖于这个内部库的其他 Python 代码(通过 setup.py 安装)使用在 setup.py 中定义的相同(传递)依赖项?

  • 无论安装方法如何,我如何确保例如的依赖项pandas也安装了?有时我看到numpy作为 pandas 的依赖项运行时未安装 setup.py ,但我想避免手动执行此操作(例如使用某些 requirements.txt 文件)。

    最佳答案

    pip不知道conda ,因此您无法构建从 conda channel 中提取其依赖项的 pip 可安装包。
    conda不在乎 setup.py ,它使用不同的格式来记录依赖项。

    使用 conda 安装您的代码,您应该创建一个 conda 包,并在 meta.yaml 中指定您的依赖项文件。有关详细信息,请参阅“conda build”的文档。

    https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html

    关于python-3.x - setup.py 与 conda 安装的依赖项(不是 pip),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57821903/

    相关文章:

    python - 在 conda 上运行 OSMnx 的问题

    python - 第四导数 - 我的图表是错误的,请让我知道我的错误

    python-3.x - 发现输入变量样本数量不一致: [159, 40]

    python - 使用piprequirements.txt更新下游项目的依赖关系

    python - 如何在 conda environment.yml 文件中设置可选参数?

    python - Conda 构造函数重复文件警告

    python - 如何在 Python 中读出 *new* OS 环境变量?

    python - 跨时间暗淡的每个网格单元的线性回归

    python - 无法使用 python -m 调用工具执行

    python - 导入错误 : No module named 'pip._vendor.diSTLib.scripts' when I try to install fabric by python pip