我正在开发一个现有的 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).