'之间的依赖冲突;设置需要';和';安装需要';在Python包中
我在尝试安装和测试我的软件包时遇到了一个错误 该错误是由两个软件包的可传递依赖项版本冲突引起的-一个在'之间的依赖冲突;设置需要';和';安装需要';在Python包中,python,setuptools,Python,Setuptools,我在尝试安装和测试我的软件包时遇到了一个错误 该错误是由两个软件包的可传递依赖项版本冲突引起的-一个在setup\u requires(twine)中,另一个在install\u requires(tensorflow)中 两者都过渡地依赖于漂白剂,每个版本都不同 使用pip install-e.或python setup.py develope安装软件包可以正常工作 运行python setup.py test时,会发生错误(注意:只有在安装后运行测试时才会发生这种情况。如果没有首先安装包,则
setup\u requires
(twine
)中,另一个在install\u requires
(tensorflow
)中
两者都过渡地依赖于漂白剂,每个版本都不同
使用pip install-e.
或python setup.py develope
安装软件包可以正常工作
运行python setup.py test
时,会发生错误(注意:只有在安装后运行测试时才会发生这种情况。如果没有首先安装包,则不会发生错误)
setup.cfg如下所示:
[metadata]
name = test
version = 0.0.1
[options]
package_dir=
= src
packages=find:
setup_requires =
setuptools >= 40.0.0
pip >= 10
pytest-runner >= 2.0
twine >= 1.0.0
install_requires =
tensorflow == 1.6.0
tests_require =
pytest >=3.0, <4.0
[options.packages.find]
where=src
[aliases]
test=pytest
from setuptools import setup
setup()
步骤:
pip安装-e.
python setup.py测试
Docker imagepython:3.6
setup\u requires
中的包,并将egg文件放在.eggs目录中
当运行python setup.py test
时,setuptools会安装install\u requires
中的所有软件包,但会发现其中一个依赖项已经有一个egg,并使用它
我不确定确切的机制是什么
可能的解决方案
- 使用更新版本的tensorflow。这就解决了冲突
- 或者:从
设置中移除
-我意识到设置不需要它捆绳
- 或者:不要在本地安装软件包。仅运行
python setup.py测试
- .eggs目录是在什么时候创建的
- 为什么安装工作正常,但测试失败
- 为什么只有在安装后测试才会失败
- 有没有办法防止冲突的发生
tensorflow==1.6.0
需要tensorboard==1.6.0
这需要漂白剂==1.5.0
。您的安装要求包含twine
,它需要自述呈现程序
,需要漂白剂>=2.1.0
,因此您基本上无法安装用于开发的软件包。测试时出现错误,因为pytestrunner
安装所有安装依赖项以生成egg信息元数据。
[metadata]
name = test
version = 0.0.1
[options]
package_dir=
= src
packages=find:
setup_requires =
setuptools >= 40.0.0
pip >= 10
pytest-runner >= 2.0
twine >= 1.0.0
install_requires =
tensorflow == 1.6.0
tests_require =
pytest >=3.0, <4.0
[options.packages.find]
where=src
[aliases]
test=pytest
from setuptools import setup
setup()