2016-11-23 3 views
-1

Jupyter iPythonでEvernote Python APIをノートブックまたはコマンドラインから使用するのに問題があります。不思議なことに、私は過去にこれを行うことができましたが、今は壊れているようです。これは私のMacBookでの新しい動作です。これは私のPC上のJupyter iPythonでも動作します。セットアップで何かが壊れていると思われますが、それをさらに診断する方法がわかりません。私は私のEvernoteのノートブックのリスト出力 - 予想を取得Evernote Python API MacでJupyter iPythonを使用しているときに「無効なヘッダー値」認証エラーが発生しました

from evernote.api.client import EvernoteClient 

dev_token = "my_dev_token_here" 
client = EvernoteClient(token=dev_token) 
noteStore = client.get_note_store() 
nbs= noteStore.listNotebooks() 
for nb in nbs: print nb.name 

まず、私は次の.pyファイルを実行しているMacのAPIに接続することができました。

次に、これらのコマンドをipython CLIインスタンスで発行しようとしました。私は次のエラーが発生します:

--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
<ipython-input-7-3796a38811af> in <module>() 
----> 1 ns = client.get_note_store() 

/usr/local/lib/python2.7/site-packages/evernote-1.23.2-py2.7.egg/evernote/api/client.pyc in get_note_store(self) 
    66  def get_note_store(self): 
    67   user_store = self.get_user_store() 
---> 68   note_store_uri = user_store.getNoteStoreUrl() 
    69   store = Store(self.token, NoteStore.Client, note_store_uri) 
    70   if not store: # Trick for PyDev code completion 

/usr/local/lib/python2.7/site-packages/evernote-1.23.2-py2.7.egg/evernote/api/client.pyc in delegate_method(*args, **kwargs) 
    136     return functools.partial(
    137      targetMethod, authenticationToken=self.token 
--> 138    )(**dict(zip(arg_names, args))) 
    139    else: 
    140     return targetMethod(*args, **kwargs) 

/usr/local/lib/python2.7/site-packages/evernote-1.23.2-py2.7.egg/evernote/edam/userstore/UserStore.pyc in getNoteStoreUrl(self, authenticationToken) 
    910  - authenticationToken 
    911  """ 
--> 912  self.send_getNoteStoreUrl(authenticationToken) 
    913  return self.recv_getNoteStoreUrl() 
    914 

/usr/local/lib/python2.7/site-packages/evernote-1.23.2-py2.7.egg/evernote/edam/userstore/UserStore.pyc in send_getNoteStoreUrl(self, authenticationToken) 
    919  args.write(self._oprot) 
    920  self._oprot.writeMessageEnd() 
--> 921  self._oprot.trans.flush() 
    922 
    923 def recv_getNoteStoreUrl(self,): 

/usr/local/lib/python2.7/site-packages/evernote-1.23.2-py2.7.egg/thrift/transport/THttpClient.pyc in _f(*args, **kwargs) 
    123    orig_timeout = socket.getdefaulttimeout() 
    124    socket.setdefaulttimeout(args[0].__timeout) 
--> 125    result = f(*args, **kwargs) 
    126    socket.setdefaulttimeout(orig_timeout) 
    127    return result 

/usr/local/lib/python2.7/site-packages/evernote-1.23.2-py2.7.egg/thrift/transport/THttpClient.pyc in flush(self) 
    148   self.__http.putheader('Content-Length', str(len(data))) 
    149   for key, value in self.__headers.iteritems(): 
--> 150    self.__http.putheader(key, value) 
    151   self.__http.endheaders() 
    152 

/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.pyc in putheader(self, header, *values) 
    1033   for one_value in values: 
    1034    if _is_illegal_header_value(one_value): 
-> 1035     raise ValueError('Invalid header value %r' % (one_value,)) 
    1036 
    1037   hdr = '%s: %s' % (header, '\r\n\t'.join(values)) 

ValueError: Invalid header value 'en-devtoken:V=2/1.23; Python/2.7.11 (default, Jan 22 2016, 08:29:18) \n[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)];' 

Jupyter iPythonノートブックでコードを実行すると、同様の結果になります。あなたが提供できる手がかりをありがとう。

答えて

2

Invalid header valueのエラーは、最新のSDKの1.25.2で修正する必要があります。 SDKをアップグレードしてもう一度お試しください。

+0

私はすでに1.25.2にアップグレードしていましたが、Pythonは新しいバージョンよりも前のパスに古いバージョン1.23.2を配置していました。 /usr/local/lib/python2.7/site-packages/evernote-1.23.2-py2.7.eggファイルを削除すると、問題が解決されました。ありがとう! – wolfins

関連する問題