2012-03-01 12 views
1

私はこのコードを持っている:'HTTPCookieProcessor'グローバル名はどのように定義しますか?

class API(object): 

     def __init__(self): 
      self.baseuri = "http://api.xxx.xxx" 
      self.cj = cookielib.CookieJar() 
      self.cp = urllib2.HTTPCookieProcessor(self.cj) 
      self.opener = urllib2.build_opener(self.cp) 

エラーがある:NameError: global name 'HTTPCookieProcessor' is not definedどのように来ますか? P.S:

>>> a = api.API() 
    Traceback (most recent call last): 
     File "<stdin>", line 1, in <module> 
     File "C:\Python27\lib\lib\xxxxx\api.py", line 9, in __init__ 
     self.cp = urllib2.HTTPCookieProcessor(self.cj) 
    NameError: global name 'HTTPCookieProcessor' is not defined 
+4

掲示されたコードは、あなたにそのエラーを与えるものではありません。投稿されたコードを修正し、完全なトレースバックを含めることはできますか? – AdamKG

答えて

0

答えはおそらく、あなたの質問にコードを貼り付けるときにapi.pyファイルの先頭からカットしてしまった3かそこらの行に含まれています。 import urllib2ラインが実際に何らかの形で問題を引き起こしている別の何かだった場合、私は驚かないだろうけど

import cookielib 
import urllib2 
# <blank line> 

:私は推測していた場合、私は彼らのようなものに見えたと思います。その場合は、あなたが持っているものをそのままimport urllib2と置き換えてみてください。それ以外の場合はフルファイルを投稿できますか?

+0

私はそれを修正しました! :)間違いは:PythonDir/Libフォルダ内にlibという名前のフォルダがあるので、PythonDir/Lib/libを持っていた。だから、PythonDir/Lib/mylibに名前を変更して修正しました:) – DrStrangeLove

+0

ああ、私はC:\ Python27 \ lib \ lib \ xxxxx \ api.pyの重要性を忘れていました。通常、C:\ Python27 \ディレクトリ内にユーザーレベルのコードを置くことは望ましくありません。それをMy Documentsなどのどこかに置き、%PYTHONPATH%環境変数を使用してPythonに標準ライブラリに加えてMy Documents \ mylibを表示するように指示します。参照:http://docs.python.org/using/windows.html#excursus-setting-environment-variables –

+0

ユーザーレベルのコードとはどういう意味ですか?アプリケーションコード??私はPythonDir/Libの中に配置しました。ライブラリコード(アプリケーションではありません)のためです。 – DrStrangeLove

関連する問題