setup.py 的版本依赖错误,但使用 pip install 成功安装

Version dependency error with setup.py but installs successfully with pip install

我有一个目录结构如下的项目:

- module_A
  - a.py
- module_B
  - b.py
requirements.txt
setup.py

该项目依赖于标准 python 包和其他 git 包。它们列在 requirements.txt.

这个项目是用pip安装成功的

pip install --process-dependency-links -e .

但是当我尝试使用 setup.py 命令安装时

python setup.py install

它抛出处理依赖性错误。

Installed /private/tmp/py2/.venv/lib/python2.7/site-packages/aspect_based_sentiment_analysis-0.0.4-py2.7.egg
Processing dependencies for aspect-based-sentiment-analysis==0.0.4
error: pandas 0.17.1 is installed but pandas==0.23.4 is required by set(['PyAthena'])

项目link

据我了解,pip 命令等同于 python setup.py install。如果有人能解释一下幕后发生的事情就太好了。

更新

pip 会记录依赖不匹配警告

pyathena 0.2.1 has requirement pandas==0.23.4, but you'll have pandas 0.17.1 which is incompatible.

有什么方法可以使用 setup.py 安装软件包吗?

不,pip install 不等同于 python setup.py install;它们在多个方面有所不同。它们的不同之处之一是 pip 可以降级软件包(卸载然后重新安装较低版本)以满足版本要求。在某些情况下, pip 甚至可以安装冲突的要求;它会以红色打印出一条错误消息,但该命令仍会以状态 0 退出。检查 pip install 的输出应该会告诉您到底发生了什么。