Python语法检查程序(Pylint,Prospector…)崩溃,错误为'休息。谁“从维姆内部运行时

2024-09-29 21:39:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我在从vim内部运行pylint时遇到了一个问题(如果使用的是syntastic插件,就需要这样做)。在

例如,:!pylint --version与此回溯一起崩溃:

Traceback (most recent call last):                                                                                                                                                  
  File "/home/seanh/.virtualenvs/ckan/bin/pylint", line 5, in <module>                                                                                                              
    from pkg_resources import load_entry_point                                                                                                                                      
  File "/home/seanh/.virtualenvs/ckan/lib/python2.7/site-packages/pkg_resources.py", line 2736, in <module>                                                                         
    add_activation_listener(lambda dist: dist.activate())                                                                                                                           
  File "/home/seanh/.virtualenvs/ckan/lib/python2.7/site-packages/pkg_resources.py", line 698, in subscribe                                                                         
    callback(dist)                                                                                                                                                                  
  File "/home/seanh/.virtualenvs/ckan/lib/python2.7/site-packages/pkg_resources.py", line 2736, in <lambda>                                                                         
    add_activation_listener(lambda dist: dist.activate())                                                                                                                           
  File "/home/seanh/.virtualenvs/ckan/lib/python2.7/site-packages/pkg_resources.py", line 2274, in activate                                                                         
    list(map(declare_namespace, self._get_metadata('namespace_packages.txt')))                                                                                                      
  File "/home/seanh/.virtualenvs/ckan/lib/python2.7/site-packages/pkg_resources.py", line 1870, in declare_namespace                                                                
    path = sys.modules[parent].__path__                                                                                                                                             
KeyError: 'repoze.who'

我还看到了在Vim中运行的相同错误prospector。在

但我不能从Vim外部复制错误。在壳里。如果我在shell中激活Python虚拟环境,然后运行pylint --version我得到:

^{pr2}$

如果我在同一个shell中运行vim,并在Vim中运行:!pylint --version,我会得到上面的回溯。退出Vim并在shell中再次运行pylint --version,这很好。在

在vim运行命令的环境和我的shell环境之间,一定有什么不同的东西触发了崩溃。但我不知道如何调查这个问题,所以这个问题有了vim标签。在

repoze.who也与此有关。如果我销毁了我的virtualenv并创建了一个新的virtualenv,其中只安装了pylint和其他语法检查程序,那么vim内外的一切都可以正常工作。但是如果我在virtualenv中pip install repoze.who==1.0.19,那么当在vim中运行:!pylint --version时,上面的pylint崩溃会再次出现(但在我的shell中运行它时不会出现)。在

Vim版本7.4是从ubuntu14.04上的包安装的。在


Tags: inhomeversionlibpackageslinesitepkg
1条回答
网友
1楼 · 发布于 2024-09-29 21:39:37

这似乎是一个问题休息。谁1.0.19条。pip install -U repoze.who==2.2中的virtualenv解决了这个问题。奇怪的是,你可以做pip install -U repoze.who==1.0.19并将其降级,pylint崩溃仍然没有发生。我从来没有弄清楚到底是什么原因造成的,但我怀疑这可能与休养谁2.0a1变更日志:删除ez_设置.py以及对它的依赖设置.py(支持分发)。在

相关问题 更多 >

    热门问题