2012-04-08 28 views
7

私はPythonで新しく、PyCharm for Windowsをインストールしました。 SkypeKit APIをテストするためにSkypeからサンプルコードをダウンロードしました。しかし...私は、デバッグボタンを押すとすぐに、私はこれを取得したよう:(Iは、Python 2.7とDjango 1.4がインストールされている)NameError:名前 'N_TOKENS'が定義されていません

Traceback (most recent call last): 
    File "C:\Program Files (x86)\JetBrains\PyCharm 2.0.2\helpers\pydev\pydevd.py", line 2, in <module> 
    from django_debug import DjangoLineBreakpoint 
    File "C:\Program Files (x86)\JetBrains\PyCharm 2.0.2\helpers\pydev\django_debug.py", line 1, in <module> 
    import inspect 
    File "C:\Program Files (x86)\Python27\lib\inspect.py", line 39, in <module> 
    import tokenize 
    File "C:\Program Files (x86)\Python27\lib\tokenize.py", line 38, in <module> 
    COMMENT = N_TOKENS 
NameError: name 'N_TOKENS' is not defined 

Process finished with exit code 1 

これは平均してどのような私はそれを修正するために何ができるのでしょうか?

+0

http://confluence.jetbrains.net/display/PYH/JetBrains+PyCharm+PreviewにあるPyCharm 2.5で動作しますか? – CrazyCoder

+0

@CrazyCoder Riaz Rizviの助けを借りて、今のところ安定版に固執しています。 – BlueVoodoo

答えて

12

tokenize.pyモジュールが間違ったtoken.pyモジュールをロードしている可能性があります。 error importing numpyを参照してください。解決策1)新しいtoken.py(token2.py)の名前を変更し、tokenize.pyなどでそれへの参照を更新します。解決策2)新しいtoken.pyがPythonパッケージに含まれている場合、importステートメントを明確にすることができます:

import CorrectPythonPackage.token as token2 

#or 

from CorrectPythonPackage.token import * 

ここで、CorrectPythonPackageは、token.pyファイルを含むフォルダ名です。

+0

ありがとうございます。それをtoken2.pyに改名し、tokenize.pyの "from token2 import *"に変更するとそのトリックが実行されました。 – BlueVoodoo

6

私の場合は、最初の名前空間の競合を引き起こしたtoken.pyという名前のファイルを解析練習として作成しました。しかし、Eclipseプロジェクトで単にファイルの名前を変更しても、問題が解決するとは限りません。 pythonを実行しているときに、* .pycのエンディングを持つコンパイルされたバイトコードファイルが作成されることがあります。また、ファイルシステムコマンドを使ってそれを見つけて削除しなければならないかもしれません。

0

私はvirtualenvを有効にしたときにこれを見ましたが、venvディレクトリには変更されていませんでした。 tokenize(システムモジュールのzipから)をインポートしようとしていませんでした。

私の作業ディレクトリを仮想環境のルートに変更すると、問題が解決されます(おそらく相対パスの問題)。

2

それは私のために働いた。

  • オープン/usr/lib/python2.7/tokenize.pyを/usr/lib/python2.7/token2.pyする

    1. リネームファイル/usr/lib/python2.7/token.py
    2. from token2 import *行わ

  • 変更from token import *

  • +0

    あまりにも、ありがとう! –

    関連する問題