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

2024-04-14

我正在开发一个现有的 Python 3 代码库,它提供了setup.py因此代码作为 Python 库安装。我正在尝试安装这个内部库及其自己的依赖项(通常的数据科学库,例如pandas, pyodbc, sqlalchemy etc).

我希望有这个内部库来处理这些依赖项并假设如果安装了该库,则假定安装了所有传递依赖项。我也想要 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
  • or with pip install .

我看到有一些gcc/ C++ 编译正在进行,显示有关 Python 轮子的日志(我不完全理解 Python Egg 和 Python 轮子的含义,但据我所知,如果conda可用的话我应该去conda版本而不是 Eggs/wheels,因为这样我就不必关心 Python 代码下面的 C++ 代码)。

我真的更喜欢有conda将这些 C++ blob 安装在一些 Python 代码中作为库,例如pandas.

  • 是否有可能拥有conda驱动中描述的安装过程setup.py所以我不处理gcc?
  • 我怎样才能确保其他Python代码依赖于这个内部库(通过安装setup.py)正在使用其中定义的相同(传递)依赖项setup.py?

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


pip不知道conda,因此您无法构建可从 conda 通道提取其依赖项的 pip 安装包。

conda不关心setup.py,它使用不同的格式来记录依赖关系。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

setup.py 与 conda 安装的依赖项(不是 pip) 的相关文章

随机推荐

  • 如何通过设备树配置 uio_dmem_genirq 驱动程序

    The uio dmem genirq https git kernel org pub scm linux kernel git stable linux stable git tree drivers uio uio dmem geni
  • 如何强制 IntelliJ 使用不同的主文件夹

    我有一台有两个硬盘的电脑 在第一个 SSD 磁盘中 我有 Windows 分区 C 在第二个磁盘 D raid 卷 中 我安装了所有程序 我还将我的用户文件夹 桌面 文档 下载 图片和视频 移动到D Users David 安装 Intel
  • 如何在 R 中使用相同的循环向量引用多个数据库?

    我需要通过组合 聚合和拆分数据帧来执行各种操作 这些行动需要连续几年重复 2000 年 2001 年 2002 年等 但是 我找不到一种方法来基于带有年份的循环字符串来引用多个数据框 一个例子 我想合并同一年的 3 个数据框 我当前的代码
  • PHP:如果在多维数组中发现重复项,则合并相邻值

    我有一些 PHP 变量集 我正在从中创建一个多维数组 现在 在该数组中 我想检查特定的键 font 对于重复项 如果发现重复项 则对应的相应值 lang and weight 应该合并 这是我到目前为止所尝试的 这会取消设置 删除数组中的重
  • 在 WPF 中创建一个简单的表?

    我想知道是否有一种方法 任何组件 控件 允许我在应用程序窗口中绘制一个简单的 Microsoft Word 样式表格 像这样的事情 有任何想法吗 这取决于您想如何使用它 要么使用其中之一ItemsControl like DataGrid
  • TDD 的 JavaScript 单元测试工具

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我研究并考虑了许多 JavaScript 单元测试和测试工具 但一直无法找到合适的选项来
  • 多表继承模型和相同两个模型之间的简单一对一关系有什么区别?

    这些实现之间有什么区别 Django 有何不同 除了继承 Metaordering and get latest by属性 1 models py from django db import models class Place model
  • 入口类的入口控制器名称

    我正在设置入口控制器 入口类和入口以在集群外部公开服务 这是全新的集群设置 我已经使用设置了 nginx ingress 控制器 kubectl apply f https raw githubusercontent com kuberne
  • Java:一个类可以同时继承两个超类吗?

    我有一个班级旅程 我想将其制作为超级班级和另一个班级计划的旅程 plannedjourney 类扩展了 JFrame 因为它包含表单 但是我也希望这个类扩展 Journey 有没有可能的方法来做到这一点 不要混合模型和视图 如果您将两个域明
  • 为什么Oracle要在这里添加隐藏列呢?

    我们最近将客户系统迁移到 Oracle 12c 和我们产品的最新版本 此过程包括运行许多迁移脚本 其中主要是添加或更改表 我们注意到 向表中添加一列同时提供默认值会创建一个额外的隐藏列SYS NC00002 您应该能够使用以下代码重现此内容
  • 如何为多种屏幕尺寸编写媒体查询?

    如果我想要 body font size 18 px 1900及以上 body font size 16 px 1024 和 1900 body font size 14 px 768 至 1023 body font size 12 px
  • 是否可以在Mongodb中获取切片的切片?

    我正在查询一个 mongo 集合 该集合有一个字段 该字段是数组的数组 我想找到一条记录 其中包含数组数组中一个深度值的投影 从概念上讲 这是 slice 的 slice 在 Mongo 有没有办法做到这一点 例如 我有一条记录 name
  • C++ 是否支持 ASCII?

    一位同事告诉我 C 不支持 ASCII The 源字符集C 程序的定义是实现定义的 那么我的同事在多大程度上是错误的呢 C 编译器在链接数字时需要识别 ASCII48价值 0 所以是的 它需要能够识别 ASCII 但它总是需要吗 想象一下你
  • Node.JS 中的 HTTP DELETE 动词

    在向 Node js 应用程序发出 DELETE 请求之前 是否需要设置任何配置 我会做GET POST or PUT要求 但是DELETE请求将不起作用 DELETE http localhost 8081 api 1 0 entry y
  • 选择具有特定子元素的元素?

    如果我想在这样的列表上做一个 CSS 选择器 ul li li li a a li li a a li li a a li ul 我想做一个li hover仅影响li包含一个 a tag 有没有办法在CSS中指定它 if li hover
  • Javascript - 检查“dragenter”上的文件类型

    我试图仅允许 jpg 文件 当您拖动 拖动时 如果至少有一个被拖动的文件不是 jpg 那么我想显示错误消息 否则只显示活动的放置区 我无法获得仅检查 jpg 文件的正确语法 即使文件时间是 jpg 我也会不断触发错误消息 无论我做错了什么
  • Keras 自定义损失函数传递 y_true 和 y_pred 以外的参数

    我正在编写一个 keras 自定义损失函数 其中我想将以下内容传递给该函数 y true y pred 这两个无论如何都会自动传递 模型内层的权重和一个常量 像下面这样 def Custom loss y true y pred layer
  • 如何在Windows上部署具有深层node_modules结构的Node.js应用程序?

    我遇到了一个奇怪的问题 显然某些 Node js 模块有这样的问题deep文件夹层次结构Windows 复制命令 或 PowerShell 的Copy Item当路径长度超过 250 个字符时 会出现臭名昭著的 路径太长 错误 例如 这是单
  • Scaffold-DbContext 为没有主键的表创建模型

    我正在尝试为 ASP NET core MVC 应用程序中的特定表创建 DBcontext 和相应的模型 该表没有任何主键 我正在按照 Scaffold DbContext 命令运行 Scaffold DbContext Server XX
  • setup.py 与 conda 安装的依赖项(不是 pip)

    我正在开发一个现有的 Python 3 代码库 它提供了setup py因此代码作为 Python 库安装 我正在尝试安装这个内部库及其自己的依赖项 通常的数据科学库 例如pandas pyodbc sqlalchemy etc 我希望有这