2016-09-20 11 views
0

私はemacs24を実行しています。私はemacsを初めて使いました。私はflycheckでチェックしているPython 2.7でいくつかのコードを持っています。私は構文をチェックすると は、私が手:flycheck:未定義の名前 'xrange'

error F821 undefined name 'xrange' (python-flake8) 

私はxrangeがのpython3ではないことを理解し、しかし、ここで私は、Python 2.7でよ。私はそれがraw_inputも同じエラーをもたらすので、Python 3で実行するように設定されていると思います。

これを修正するにはどうすればよいですか?

答えて

0

Flycheckはそれはそれはexec-pathで見つけ、あなたのケースでは、それは明らかにあなたがする必要があるのPython 3

のためにインストールflake8の実行最初flake8を実行Pythonの2とPython 3の違いを気にしません。 Python 2用にflake8をインストールし、フライチェックをその実行可能ファイルに指定するには、ターゲットディレクトリをexec-pathまたはM-x flycheck-set-checker-executableに設定します。

プロジェクト用に専用のPython 2 virtualenvを使用し、Emacsを作成して、Directory Variablesなどのように、そのディレクトリにpython-shell-virtualenv-rootを設定することをお勧めします。次に、そのvirtualenvにexec-pathを指すことができます。ちょっとcustom Emacs Lispで、それを自動化することさえできます。

0

私は同じ問題を抱えていましたが、そのために私の解決方法をお勧めします:https://github.com/rmuslimov/flycheck-local-flake8それは簡単です - それはフライチェックを適切にflake8あなたのvirtualenvから実行可能な使用を強制します。

あなたが作業している各pythonプロジェクトにsetup.cfgを追加することをお勧めします。 Flake8にはいくつかの環境変数が定義されています。たとえば、ここに私のものです:

[metadata] 
name=fastttrace 
version=release.5.9.0 

[flake8] 
exclude = tests/*, migrations/* 
ignore = D100,D101,D102,D103,D205,D400,E731 
import-order-style = google 
max-complexity = 15 

これは、他の開発者と共有するための便利な方法である、あなたはプロジェクトごとに別々のflake8ルールを持っており、レポに格納することができます。

関連する問題