什么是site-packages \ pkg_resources&为什么说我有依赖性问题?

时间:2017-11-11 21:32:05

标签: python debugging command-line import package

问题:

我如何理解
的输出     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的状态。我有azuremsrest和&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发生的事情都会令人惊讶。

0 个答案:

没有答案