我如何理解
的输出
raise VersionConflict(dist, req).with_context(dependent_req)
解决依赖关系当我通过pip
安装时,为什么没有发现这些冲突?
这是VersionConflict().with_context()
执行时吐出的内容:
pkg_resources.ContextualVersionConflict:
(
foo-module <some HIGHER version number> (c:\<blahblah>\lib\site-packages),
Requirement.parse('foo-module[autorest]==<some LOWER version number>'),
set([<some fat list of modules>])
)
我写了一个工具来快速打开/关闭&amp;检查我的一些Azure-VM的状态。我有azure
,msrest
和&amp; msrestazure
打包为依赖项。我以为我得到了requirements.txt
权利,但显然情况并非如此。
你可以找到我的碎片-o&#39; -garbagio右here。
此特定依赖项冲突发现问题在运行时发生,&amp;似乎影响了python cli程序。
pip install .
)和&amp ;;它使用包含setup.py
参数的entry_points=
文件,如下所示:setup(...
entry_points={'console_script = foo_package.__barModule__:baz_function'},
...)
(搜索pkg_resources.ContextualVersionConflict
会在scrapy
周围出现很多问题。)
我不知道在哪里开始寻找版本信息来解决此冲突。这是我运行$ azureutils turnon vm1
时获得的追溯:
Traceback (most recent call last):
File "C:\Users\NUNYA-BITNASS\Anaconda2\envs\azurerm2.7\Scripts\azureutils-script.py", line 6, in <module>
from pkg_resources import load_entry_point
File "C:\Users\NUNYA-BITNASS\Anaconda2\envs\azurerm2.7\lib\site-packages\pkg_resources\__init__.py", line 3138, in <module>
@_call_aside
File "C:\Users\NUNYA-BITNASS\Anaconda2\envs\azurerm2.7\lib\site-packages\pkg_resources\__init__.py", line 3122, in _call_aside
f(*args, **kwargs)
File "C:\Users\NUNYA-BITNASS\Anaconda2\envs\azurerm2.7\lib\site-packages\pkg_resources\__init__.py", line 3151, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "C:\Users\NUNYA-BITNASS\Anaconda2\envs\azurerm2.7\lib\site-packages\pkg_resources\__init__.py", line 666, in _build_master
return cls._build_from_requirements(__requires__)
File "C:\Users\NUNYA-BITNASS\Anaconda2\envs\azurerm2.7\lib\site-packages\pkg_resources\__init__.py", line 679, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "C:\Users\NUNYA-BITNASS\Anaconda2\envs\azurerm2.7\lib\site-packages\pkg_resources\__init__.py", line 872, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (azure-common 1.1.8 (c:\users\NUNYA-BITNASS\anaconda2\envs\azurerm2.7\lib\site-packages), Requirement.parse('azure-common[autorest]==1.1.4'), set(['azure-mgmt-batch', 'azure-mgmt-redis', 'azure-mgmt-powerbiembedded', 'azure-mgmt-notificationhubs', 'azure-mgmt-scheduler', 'azure-mgmt-network', 'azure-mgmt-storage', 'azure-graphrbac', 'azure-mgmt-cognitiveservices', 'azure-mgmt-keyvault', 'azure-batch', 'azure-mgmt-compute', 'azure-mgmt-authorization', 'azure-mgmt-logic', 'azure-mgmt-web', 'azure-mgmt-commerce', 'azure-mgmt-cdn', 'azure-mgmt-resource']))
现在,我对可怕的追溯并不陌生,这些追溯通过50个我没有写过的模块。不明白。我通常会看到结尾,这就是我在最后一行的阅读方式:
pkg_resources.ContextualVersionConflict: (azure-common 1.1.<higher digit> (c:\<blahblah>\lib\site-packages), Requirement.parse('azure-common[autorest]==1.1.<lower digit>'), set([<some fat list of modules>]))
... soooo是啊!不太清楚从哪里开始解开这个。任何帮助了解site-packages\pkg_resources\__init__.py
发生的事情都会令人惊讶。