I'm currently stuck at the very first hurdle trying to get the Refinitiv Eikon API working with Python.
My code:
import eikon as ek # the Eikon Python wrapper package
import numpy as np # NumPy
import pandas as pd # pandas
import configparser as cp
print(ek.__version__)
ek.set_app_key('my app key here')
The response from this I get is:
AttributeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_15812/3514278165.py in <module>
8 print(ek.__version__)
9 ---> 10 ek.set_app_key('removed - will add below as private comment')
~\Miniconda3\envs\refinitiv\lib\site-packages\eikon\Profile.py in set_app_key(app_key)
31 You can get an app key using the App Key Generator (this App is available in Eikon Desktop).
32 """
---> 33 get_profile().set_app_key(app_key)
34 35
~\Miniconda3\envs\refinitiv\lib\site-packages\eikon\Profile.py in set_app_key(self, app_key)
221 self._desktop_session._app_key = app_key # = DesktopSession(app_key, self._on_state, self._on_event)
222 else:
--> 223 self._desktop_session = DesktopSession(app_key=app_key,
224 on_state= self._on_state,
225 on_event=self._on_event)
~\Miniconda3\envs\refinitiv\lib\site-packages\eikon\streaming_session\desktop_session.py in __init__(self, app_key, on_state, on_event, **kwargs)
23 24 def __init__(self, app_key, on_state=None, on_event=None, **kwargs):
---> 25 super().__init__(app_key=app_key,
26 on_state=on_state,
27 on_event=on_event,
~\Miniconda3\envs\refinitiv\lib\site-packages\eikon\streaming_session\session.py in __init__(self, app_key, on_state, on_event, token, dacs_user_name, dacs_position, dacs_application_id)
216 self._timeout = 60
217 timeout = httpx.Timeout(self._timeout)
--> 218 self._http_session = httpx.AsyncClient(
219 headers={"Accept": "application/json"},
220 timeout=timeout,
~\Miniconda3\envs\refinitiv\lib\site-packages\httpx\_client.py in __init__(self, auth, params, headers, cookies, verify, cert, http1, http2, proxies, mounts, timeout, follow_redirects, limits, max_redirects, event_hooks, base_url, transport, app, trust_env)
1378 proxy_map = self._get_proxy_map(proxies, allow_env_proxies)
1379 -> 1380 self._transport = self._init_transport(
1381 verify=verify,
1382 cert=cert,
~\Miniconda3\envs\refinitiv\lib\site-packages\httpx\_client.py in _init_transport(self, verify, cert, http1, http2, limits, transport, app, trust_env)
1426 return ASGITransport(app=app)
1427 -> 1428 return AsyncHTTPTransport(
1429 verify=verify,
1430 cert=cert,
~\Miniconda3\envs\refinitiv\lib\site-packages\httpx\_transports\default.py in __init__(self, verify, cert, http1, http2, limits, trust_env, proxy, uds, local_address, retries)
231 232 if proxy is None:
--> 233 self._pool = httpcore.AsyncConnectionPool(
234 ssl_context=ssl_context,
235 max_connections=limits.max_connections,
~\Miniconda3\envs\refinitiv\lib\site-packages\httpcore\_async\connection_pool.py in __init__(self, ssl_context, max_connections, max_keepalive_connections, keepalive_expiry, http1, http2, retries, local_address, uds, network_backend)
109 self._pool: List[AsyncConnectionInterface] = []
110 self._requests: List[RequestStatus] = []
--> 111 self._pool_lock = AsyncLock()
112 self._network_backend = (
113 AutoBackend() if network_backend is None else network_backend
~\Miniconda3\envs\refinitiv\lib\site-packages\httpcore\_synchronization.py in __init__(self)
10 class AsyncLock:
11 def __init__(self) -> None:
---> 12 self._lock = anyio.Lock()
13 14 async def __aenter__(self) -> "AsyncLock":
AttributeError: module 'anyio' has no attribute 'Lock'
Eikon = 1.1.14
Anyio = 3.4.0
If someone could offer some help I'd be very grateful, thanks