python-3.x - setup.py 与 conda 安装的依赖项(不是 pip)
问题描述
我正在开发一个现有的 Python 3 代码库,setup.py
该代码库提供了一个,因此代码作为 Python 库安装。我试图让这个内部库安装它自己的依赖项(通常的数据科学依赖项,例如,pandas
等)。pyodbc
sqlalchemy
我想让这个内部库来处理这些依赖项,并假设如果安装了该库,则假定所有传递依赖项都已安装。我还想要conda
包的 Anaconda ( ) 版本而不是pip
版本。
我从 a 开始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 轮子的含义,但是如果 AFAIKconda
可用,那么我应该使用conda
版本而不是鸡蛋/轮子因为这样我就不必处理 Python 代码下面的 C++ 代码)。
我真的更愿意conda
将这些 C++ blob 安装在一些 Python 代码中作为库,例如pandas
.
- 是否有可能
conda
驱动中描述的安装过程,setup.py
所以我不处理gcc
? - 我如何确保依赖于这个内部库(通过安装
setup.py
)的其他 Python 代码正在使用其中定义的相同(传递)依赖项setup.py
?
无论安装方法如何,如何确保pandas
也安装了 eg 的依赖项?有时我看到运行时未安装numpy
依赖项,但我想避免手动执行此操作(例如,使用某些文件)。pandas
setup.py
requirements.txt
解决方案
pip
不知道conda
,因此您无法构建从 conda 通道中提取其依赖项的 pip 可安装包。
conda
不关心setup.py
,它使用不同的格式来记录依赖关系。
要使用 安装您的代码,您应该创建一个 conda 包,并在文件conda
中指定您的依赖项。meta.yaml
有关详细信息,请参阅“conda build”的文档。
https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html
推荐阅读
- linux - 驱动程序是否负责按照传递给它的顺序返回缓冲区
- android - 我如何按顺序执行android firebase多个childeventlistiner
- reactjs - 两个或多个 Route 可以渲染同一个组件吗?
- java - 从行具有特定值的表中检索 Firebase 中的数据
- javascript - 反应原生构建失败的Android
- javascript - 指针在 JavaScript 中是如何工作的?
- javascript - Javascript/jQuery:第一次 AJAX 调用成功时开始“闪烁”,下一次停止
- pointers - 如何递归地将 2 个排序的链表合并到一个新的排序列表中?
- python - Python3 - 识别对象类型的问题
- sql - 在 SQL 表上创建统计信息之前检查是否存在具有相同列的统计信息