2012-04-08 142 views
7

我是Python新手,剛剛爲Windows安裝PyCharm。從Skype下載了一些示例代碼來測試其SkypeKit API。但是......只要我打的調試按鈕,我得到這樣的:(我的Python 2.7和1.4的Django安裝)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 2012-04-09 06:12:29

+0

@CrazyCoder得到它在Riaz Rizvi的幫助下工作,所以現在堅持穩定版本。 – BlueVoodoo 2012-04-09 09:33:38

回答

12

tokenize.py模塊可能正在加載錯誤的token.py模塊。請參閱error importing numpy。解決方案1)重命名新的token.py(token2.py)並在tokenize.py中更新對它的引用。解決方案2)如果新的token.py位於python包中,您可以消除導入語句的歧義:

import CorrectPythonPackage.token as token2 

#or 

from CorrectPythonPackage.token import * 

其中CorrectPythonPackage是包含token.py文件的文件夾名稱。

+0

謝謝。將它重命名爲token2.py,並在tokenize.py中更改爲「from token2 import *」的技巧。 – BlueVoodoo 2012-04-09 09:31:50

6

在我的情況下,我創建了一個名爲token.py的文件作爲解析練習,導致了初始命名空間衝突。但是,簡單地在Eclipse項目中重命名文件並不總能解決問題。有時,運行python時會創建一個帶有* .pyc結尾的編譯字節碼文件。您可能還必須使用文件系統命令來查找並刪除它。

0

我看到這個,當我激活一個virtualenv,但沒有改變venv目錄。嘗試導入標記大小(從系統模塊的zip)失敗。

將我的工作目錄更改爲虛擬環境的根目錄解決了問題(推測是相對路徑問題)。

2

它爲我工作。

  1. 重命名文件/usr/lib/python2.7/token.py到/usr/lib/python2.7/token2.py
  2. 開放/usr/lib/python2.7/tokenize.py
  3. 變化from token import *from token2 import *

完成。

+0

也適用於我,謝謝! – 2017-11-16 15:25:13