2

この一般的な質問は新しいものではないことは知っていましたが、個人的な問題のようです。

私はPython3.3用のWindows7でpylintをインストールしようとしています(はい、サポートされていないことはわかっていますが、可能であることはわかっています-私の同僚がインストールしたためですが、残念ながら、既知の問題に対する彼の回避策は私のPCでは機能しませんでした-そして彼はWindows8を持っています...)

この時点で、Python 3.3をインストールし、最初にpipを介してpylintをインストールしようとしましたが、失敗しました。

検索と私の同僚とのいくつかの話し合いは、この答えをもたらしました: 運が悪いpip-Python3用のpylintをインストールする

これらの手順でpylintをインストールできましたが、依存関係の1つ(logilab-astng)が失敗しました。

setup.pyスクリプトを確認したところ、「2to3」変換が自分のマシンで実行されていないことに気付きました(パスの問題が原因だと思います)。変換を再構成して実行しました。

その後、すべてのインストールプロセス(pylint、logilab-astng、logilab-common)が「成功」で終了しましたが、pylintを起動すると、次のメッセージが表示されます。

G:\Path\to\project>pylint --rcfile .\pylint.rc modulename
Traceback (most recent call last):
  File "C:\Program Files (x86)\Python33\Scripts\pylint-script.py", line 9, in <module>
    load_entry_point('pylint==0.27.0', 'console_scripts', 'pylint')()
  File "C:\Program Files (x86)\Python33\lib\site-packages\pylint-0.27.0-py3.3.egg\pylint\__init__.py", line 21, in run_pylint
    Run(sys.argv[1:])
  File "C:\Program Files (x86)\Python33\lib\site-packages\pylint-0.27.0-py3.3.egg\pylint\lint.py", line 991, in __init__
    linter.check(args)
  File "C:\Program Files (x86)\Python33\lib\site-packages\pylint-0.27.0-py3.3.egg\pylint\lint.py", line 587, in check
    self.check_astng_module(astng, walker, rawcheckers)
  File "C:\Program Files (x86)\Python33\lib\site-packages\pylint-0.27.0-py3.3.egg\pylint\lint.py", line 666, in check_astng_module
    walker.walk(astng)
  File "C:\Program Files (x86)\Python33\lib\site-packages\pylint-0.27.0-py3.3.egg\pylint\utils.py", line 600, in walk
    self.walk(child)
  File "C:\Program Files (x86)\Python33\lib\site-packages\pylint-0.27.0-py3.3.egg\pylint\utils.py", line 597, in walk
    cb(astng)
  File "C:\Program Files (x86)\Python33\lib\site-packages\pylint-0.27.0-py3.3.egg\pylint\checkers\variables.py", line 510, in visit_import
    module = next(node.infer_name_module(parts[0]))
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\bases.py", line 304, in wrapped
    for res in _func(node, context, **kwargs):
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\inference.py", line 181, in infer_imp
ort
    yield self.do_import_module(name)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\mixins.py", line 117, in do_import_mo
dule
    return mymodule.import_module(modname, level=level)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\scoped_nodes.py", line 342, in import
_module
    return MANAGER.astng_from_module_name(absmodname)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\manager.py", line 136, in astng_from_
module_name
    return self.astng_from_file(filepath, modname, fallback=False)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\manager.py", line 107, in astng_from_
file
    return ASTNGBuilder(self).file_build(filepath, modname)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\builder.py", line 129, in file_build
    node = self.string_build(data, modname, path)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\builder.py", line 135, in string_buil
d
    module = self._data_build(data, modname, path)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\builder.py", line 162, in _data_build

    module = self.rebuilder.visit_module(node, modname, package)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 616, in visit_mod
ule
    newnode.body = [self.visit(child, newnode) for child in node.body]
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 616, in <listcomp
>
    newnode.body = [self.visit(child, newnode) for child in node.body]
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 137, in visit
    return self._visit_meths[cls](node, parent)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 471, in visit_fun
ction
    newnode.body = [self.visit(child, newnode) for child in node.body]
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 471, in <listcomp
>
    newnode.body = [self.visit(child, newnode) for child in node.body]
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 137, in visit
    return self._visit_meths[cls](node, parent)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 450, in visit_for

    newnode.body = [self.visit(child, newnode) for child in node.body]
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 450, in <listcomp
>
    newnode.body = [self.visit(child, newnode) for child in node.body]
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 137, in visit
    return self._visit_meths[cls](node, parent)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 540, in visit_if
    newnode.body = [self.visit(child, newnode) for child in node.body]
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 540, in <listcomp
>
    newnode.body = [self.visit(child, newnode) for child in node.body]
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 137, in visit
    return self._visit_meths[cls](node, parent)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 391, in visit_dis
card
    newnode.value = self.visit(node.value, newnode)
  File "C:\Program Files (x86)\Python33\lib\site-packages\logilab_astng-0.24.2-py3.3.egg\logilab\astng\rebuilder.py", line 141, in visit
    visit_method = getattr(self, visit_name)
AttributeError: 'TreeRebuilder3k' object has no attribute 'visit_yieldfrom'

あなたのアイデアを楽しみにしています!

4

1 に答える 1

0

問題は、pylint で使用される ast 表現を保持する logilab-astng が、Python 3.3 で導入された「yieldfrom」ノードをまだサポートしていないことです。

以下のパッチを試すことをお勧めします。これで問題が解決するはずです。

diff --git a/rebuilder.py b/rebuilder.py
--- a/rebuilder.py
+++ b/rebuilder.py
@@ -877,10 +877,12 @@ class TreeRebuilder3k(TreeRebuilder):
             newnode.handlers = [self.visit(child, newnode) for child in node.handlers]
             newnode.orelse = [self.visit(child, newnode) for child in node.orelse]
         newnode.set_line_info(newnode.last_child())
         return newnode

+    def visit_yieldfrom(self, node, parent):
+        return self.visit_yield(node, parent)

 if sys.version_info >= (3, 0):
     TreeRebuilder = TreeRebuilder3k
于 2013-03-20T08:27:23.960 に答える