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ノートブックでコードを実行すると、同様の結果になります。あなたが提供できる手がかりをありがとう。
私はすでに1.25.2にアップグレードしていましたが、Pythonは新しいバージョンよりも前のパスに古いバージョン1.23.2を配置していました。 /usr/local/lib/python2.7/site-packages/evernote-1.23.2-py2.7.eggファイルを削除すると、問題が解決されました。ありがとう! – wolfins