AttributeError: module 'anyio' has no attribute 'Lock'
Hi,
I face this error message when running python with eikon api today. The error message is module 'anyio' has no attribute 'Lock'. I have already downgraded the anyio version from 3.4.0 to 3.2.1, but the problem stays. How to solve this problem?
Thanks.
Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.
IPython 7.22.0 -- An enhanced Interactive Python.
import sys
sys.path.append(r'C:\users\clli\python_prod\Lib\site-packages')
import holidays
from RAW_Daily_imports import dailyimport
from GlobeWatchlist import globe_returns
from CreateDailyPriceFile import dailypxfile
test=dailyimport(justdata=True)
Starting NAV import process
Starting FX import process
Master file script error
test=dailyimport(justdata=True,run_which=['Benchmark'])
Exception ignored in: <function Session.__del__ at 0x0000029390C70940>
Traceback (most recent call last):
File "C:\users\clli\python_prod\Lib\site-packages\eikon\streaming_session\session.py", line 237, in __del__
Session.unregister_session(self)
File "C:\users\clli\python_prod\Lib\site-packages\eikon\streaming_session\session.py", line 153, in unregister_session
raise EikonError('Error', 'Try to unregister unavailable session')
eikon.eikonError.EikonError: Error code Error | Try to unregister unavailable session
Master file script error
test=dailyimport(justdata=True,run_which=['Benchmark'])
Exception ignored in: <function Session.__del__ at 0x0000029390C70940>
Traceback (most recent call last):
File "C:\users\clli\python_prod\Lib\site-packages\eikon\streaming_session\session.py", line 237, in __del__
Session.unregister_session(self)
File "C:\users\clli\python_prod\Lib\site-packages\eikon\streaming_session\session.py", line 153, in unregister_session
raise EikonError('Error', 'Try to unregister unavailable session')
eikon.eikonError.EikonError: Error code Error | Try to unregister unavailable session
Master file script error
(1)
import eikon as ek # the Eikon Python wrapper package
import pandas as pd
ek.set_app_key('10e2f58ba50c4e58aa4ddde0c910e1f6a515c10e')
Exception ignored in: <function Session.__del__ at 0x0000029390C70940>
Traceback (most recent call last):
File "C:\users\clli\python_prod\Lib\site-packages\eikon\streaming_session\session.py", line 237, in __del__
Session.unregister_session(self)
File "C:\users\clli\python_prod\Lib\site-packages\eikon\streaming_session\session.py", line 153, in unregister_session
raise EikonError('Error', 'Try to unregister unavailable session')
eikon.eikonError.EikonError: Error code Error | Try to unregister unavailable session
Traceback (most recent call last):
File "<ipython-input-9-eae58f4994ba>", line 3, in <module>
ek.set_app_key('10e2f58ba50c4e58aa4ddde0c910e1f6a515c10e')
File "C:\users\clli\python_prod\Lib\site-packages\eikon\Profile.py", line 33, in set_app_key
get_profile().set_app_key(app_key)
File "C:\users\clli\python_prod\Lib\site-packages\eikon\Profile.py", line 223, in set_app_key
self._desktop_session = DesktopSession(app_key=app_key,
File "C:\users\clli\python_prod\Lib\site-packages\eikon\streaming_session\desktop_session.py", line 25, in __init__
super().__init__(app_key=app_key,
File "C:\users\clli\python_prod\Lib\site-packages\eikon\streaming_session\session.py", line 218, in __init__
self._http_session = httpx.AsyncClient(
File "C:\users\clli\python_prod\Lib\site-packages\httpx\_client.py", line 1380, in __init__
self._transport = self._init_transport(
File "C:\users\clli\python_prod\Lib\site-packages\httpx\_client.py", line 1428, in _init_transport
return AsyncHTTPTransport(
File "C:\users\clli\python_prod\Lib\site-packages\httpx\_transports\default.py", line 233, in __init__
self._pool = httpcore.AsyncConnectionPool(
File "C:\users\clli\python_prod\Lib\site-packages\httpcore\_async\connection_pool.py", line 111, in __init__
self._pool_lock = AsyncLock()
File "C:\users\clli\python_prod\Lib\site-packages\httpcore\_synchronization.py", line 12, in __init__
self._lock = anyio.Lock()
AttributeError: module 'anyio' has no attribute 'Lock'
Answers
-
You can try the following code.
import anyio
anyio.Lock()Next, check the version of anyio in the C:\users\clli\python_prod\Lib\site-packages directory.
0 -
Thanks. Do you have any other recommended solution? I tried but I still face this issue.
0 -
My anyio-3.2.1 has the Lock attribute.
I found that anyio below 3.x (such as 2.2.0) doesn't have the Lock attribute.
You can check to code why the anyio doesn't have the Lock attribute.
import anyio
print(anyio.__file__)
print(open(anyio.__file__).read())I assumed that you are still loading the old version of anyio.
0 -
Thanks. I did not see the Lock attribute in anyio. my anyio version is 3.2.1. I have attached the output here. Please assist with my next step. Thanks.
import anyio
anyio.Lock()
Traceback (most recent call last):
File "<ipython-input-7-891900de7013>", line 1, in <module>
anyio.Lock()
AttributeError: module 'anyio' has no attribute 'Lock'
print(anyio.__file__)
C:\ProgramData\Anaconda3\lib\site-packages\anyio\__init__.py
print(open(anyio.__file__).read())
__all__ = ('maybe_async', 'maybe_async_cm', 'run', 'sleep', 'current_time', 'get_all_backends',
'get_cancelled_exc_class', 'BrokenResourceError', 'BusyResourceError',
'ClosedResourceError', 'DelimiterNotFound', 'EndOfStream', 'ExceptionGroup',
'IncompleteRead', 'TypedAttributeLookupError', 'WouldBlock', 'AsyncFile', 'open_file',
'aclose_forcefully', 'open_signal_receiver', 'connect_tcp', 'connect_unix',
'create_tcp_listener', 'create_unix_listener', 'create_udp_socket',
'create_connected_udp_socket', 'getaddrinfo', 'getnameinfo', 'wait_socket_readable',
'wait_socket_writable', 'create_memory_object_stream', 'run_process', 'open_process',
'create_lock', 'create_condition', 'create_event', 'create_semaphore',
'create_capacity_limiter', 'open_cancel_scope', 'fail_after', 'move_on_after',
'current_effective_deadline', 'create_task_group', 'TaskInfo', 'get_current_task',
'get_running_tasks', 'wait_all_tasks_blocked', 'run_sync_in_worker_thread',
'run_async_from_thread', 'current_default_worker_thread_limiter',
'create_blocking_portal', 'start_blocking_portal', 'typed_attribute',
'TypedAttributeSet', 'TypedAttributeProvider')
from ._core._compat import maybe_async, maybe_async_cm
from ._core._eventloop import current_time, get_all_backends, get_cancelled_exc_class, run, sleep
from ._core._exceptions import (
BrokenResourceError, BusyResourceError, ClosedResourceError, DelimiterNotFound, EndOfStream,
ExceptionGroup, IncompleteRead, TypedAttributeLookupError, WouldBlock)
from ._core._fileio import AsyncFile, open_file
from ._core._resources import aclose_forcefully
from ._core._signals import open_signal_receiver
from ._core._sockets import (
connect_tcp, connect_unix, create_connected_udp_socket, create_tcp_listener, create_udp_socket,
create_unix_listener, getaddrinfo, getnameinfo, wait_socket_readable, wait_socket_writable)
from ._core._streams import create_memory_object_stream
from ._core._subprocesses import open_process, run_process
from ._core._synchronization import (
create_capacity_limiter, create_condition, create_event, create_lock, create_semaphore)
from ._core._tasks import (
create_task_group, current_effective_deadline, fail_after, move_on_after, open_cancel_scope)
from ._core._testing import TaskInfo, get_current_task, get_running_tasks, wait_all_tasks_blocked
from ._core._threads import (
create_blocking_portal, current_default_worker_thread_limiter, run_async_from_thread,
run_sync_in_worker_thread, start_blocking_portal)
from ._core._typedattr import TypedAttributeProvider, TypedAttributeSet, typed_attribute
# Re-export imports so they look like they live directly in this package
for key, value in list(locals().items()):
if getattr(value, '__module__', '').startswith('anyio.'):
value.__module__ = __name__
0 -
The file is similar to the __init__.py of anyio-2.2.0.
It uses the anyio from C:\ProgramData\Anaconda3\lib\site-packages directory. Please check the version of anyio in this C:\ProgramData\Anaconda3\lib\site-packages directory
0 -
Hello @clli
I am noticed that the libraries are located on both "C:\users\<user>\python_prod\Lib\site-packages\" and "C:\ProgramData\Anaconda3\lib\site-packages\" location.
Could you create a new Conda environment, install the Eikon Data API library in that environment and re-test the issue? You can find more detail on the Isolated development environment section of the Setting up a Python development environment tutorial page.
0 -
2021-12-20 12:02:17,383 P[12576] [MainThread 8708] Eikon Proxy not running or cannot be reached. Please read the documentation on troubleshooting
2021-12-20 12:02:17,384 P[12576] [MainThread 8708] error
Traceback (most recent call last):
File "C:\Cloud\Box\Sprott Asset$\SAM Performance and Analytics\Risk\Applications\Python\Eikon_TimeSeries.py", line 41, in eikon_ts
data = ek.get_timeseries(rics,
File "C:\users\clli\python_prod\Lib\site-packages\eikon\time_series.py", line 182, in get_timeseries
ts_result = eikon.json_requests.send_json_request(TimeSeries_UDF_endpoint, payload, debug=debug)
File "C:\users\clli\python_prod\Lib\site-packages\eikon\json_requests.py", line 149, in send_json_request
raise EikonError(401, error_msg)
eikon.eikonError.EikonError: Error code 401 | Eikon Proxy not running or cannot be reached. Please read the documentation on troubleshooting
2021-12-20 12:02:17,388 P[12576] [MainThread 8708] Eikon error
Traceback (most recent call last):
File "C:\Cloud\Box\Sprott Asset$\SAM Performance and Analytics\Risk\Applications\Python\Eikon_TimeSeries.py", line 41, in eikon_ts
data = ek.get_timeseries(rics,
File "C:\users\clli\python_prod\Lib\site-packages\eikon\time_series.py", line 182, in get_timeseries
ts_result = eikon.json_requests.send_json_request(TimeSeries_UDF_endpoint, payload, debug=debug)
File "C:\users\clli\python_prod\Lib\site-packages\eikon\json_requests.py", line 149, in send_json_request
raise EikonError(401, error_msg)
eikon.eikonError.EikonError: Error code 401 | Eikon Proxy not running or cannot be reached. Please read the documentation on troubleshooting
2021-12-20 12:02:17,392 P[12576] [MainThread 8708] error
Traceback (most recent call last):
File "C:\Cloud\Box\Sprott Asset$\SAM Performance and Analytics\Risk\Applications\Python\RAW_Daily_imports.py", line 72, in dailyimport
all_data['Benchmark']=benchimport(fi('5,12',filedate,db=db),filedate, justdata,db=db)
File "C:\Cloud\Box\Sprott Asset$\SAM Performance and Analytics\Risk\Applications\Python\Dataimport.py", line 105, in file_importer
file_dict[fn]=data['TimeSeries']
TypeError: 'NoneType' object is not subscriptable
2021-12-20 12:02:17,394 P[12576] [MainThread 8708] critical
Eikon data retrieval error
Master file script error
import eikon as ek # the Eikon Python wrapper package
import pandas as pd
#set up eikon app
ek.set_app_key('XXX')
2021-12-20 12:03:47,873 P[12576] [MainThread 8708] Error: no proxy address identified.
Check if Eikon Desktop or Eikon API Proxy is running.
2021-12-20 12:03:47,875 P[12576] [MainThread 8708] Error on handshake url http://127.0.0.1:None/api/handshake : UnsupportedProtocol("Request URL is missing an 'http://' or 'https://' protocol.")
2021-12-20 12:03:47,876 P[12576] [MainThread 8708] Error on handshake url http://127.0.0.1:None/api/handshake : UnsupportedProtocol("Request URL is missing an 'http://' or 'https://' protocol.")
2021-12-20 12:03:47,877 P[12576] [MainThread 8708] Port number was not identified, cannot send any request
import eikon as ek
print(ek.__version__)
1.1.14
I have a hard time to to connect Eikon API now, after changing the anyio version to 3.2.1 in the Anaconda folder. I followed the guide and my outputs are listed below. Please advise on my next steps. Thank you.
1. My Eikon Desktop version:4.0.55
2. My Eikon Data APIs version:1.1.14
3.Verify that Eikon Desktop is running properly and APIPROXY service is enabled: There imight be something wrong in the API Proxy file.
Arg: C:\Program Files (x86)\Thomson Reuters\Eikon\X\Bin\Eikonbox.exe C:\Users\clli\AppData\Local\Thomson Reuters\Eikon User\Cache\LibraryCache\Apps\REFINITIVHOLDINGS.EIKON.DATAAPIPROXY\1.4.0.2\index.js -TraceLevel=-1
These parts are fine.
{"statusCode":"ST_PROXY_READY","version":"3.1.0"}
{"port":9000,"mode":"eikon4","pid":17216,"hasSecure":true,"startedTime":"Mon Dec 20 2021 11:59:34 GMT-0500 (Eastern Standard Time)","subApps":[{"path":"/heap"},{"path":"/ping"},{"path":"/api"}]}0 -
Thanks. the no attribute 'Lock' issue is solved by moving the anyio 3.2.1 folder from the prod folder to the C:\ProgramData\Anaconda3\lib\site-package folder, but I faced another message - Check if Eikon Desktop or Eikon API Proxy is running. I have read the troubleshooting guide and show the output in an answer below. Should I downgrade my Eikon version, too? If so, please let me know which version I should downgrade to. Thanks.
0 -
anyio misses another attribute called 'abc' now.
import eikon
ek.set_app_key('XXX')
2021-12-20 13:12:55,940 P[12576] [MainThread 8708] Reset a Desktop session with new app_key
2021-12-20 13:12:55,967 P[12576] [MainThread 8708] Send GET request to http://127.0.0.1:9060/api/status to detect API Proxy...
2021-12-20 13:12:55,971 P[12576] [MainThread 8708] Request to http://127.0.0.1:9060/api/status
headers = {'x-tr-applicationid': '10e2f58ba50c4e58aa4ddde0c910e1f6a515c10e'}
params = None
2021-12-20 13:12:55,978 P[12576] [MainThread 8708] HTTP request failed: AttributeError("module 'anyio' has no attribute 'abc'")
2021-12-20 13:12:55,981 P[12576] [MainThread 8708] Error on checking proxy url http://127.0.0.1:9060/api/status : AttributeError("module 'anyio' has no attribute 'abc'")
2021-12-20 13:12:55,984 P[12576] [MainThread 8708] Warning: file .portInUse was not found. Try to fallback to default port number.
2021-12-20 13:12:55,988 P[12576] [MainThread 8708] Try defaulting to port 9000...
2021-12-20 13:12:55,991 P[12576] [MainThread 8708] Send GET request to http://127.0.0.1:9000/api/status to detect API Proxy...
2021-12-20 13:12:55,993 P[12576] [MainThread 8708] Request to http://127.0.0.1:9000/api/status
headers = {'x-tr-applicationid': '10e2f58ba50c4e58aa4ddde0c910e1f6a515c10e'}
params = None
2021-12-20 13:12:56,000 P[12576] [MainThread 8708] HTTP request failed: AttributeError("module 'anyio' has no attribute 'abc'")
2021-12-20 13:12:56,017 P[12576] [MainThread 8708] Error on checking proxy url http://127.0.0.1:9000/api/status : AttributeError("module 'anyio' has no attribute 'abc'")
2021-12-20 13:12:56,019 P[12576] [MainThread 8708] Try defaulting to port 36036...
2021-12-20 13:12:56,021 P[12576] [MainThread 8708] Send GET request to http://127.0.0.1:36036/api/status to detect API Proxy...
2021-12-20 13:12:56,024 P[12576] [MainThread 8708] Request to http://127.0.0.1:36036/api/status
headers = {'x-tr-applicationid': '10e2f58ba50c4e58aa4ddde0c910e1f6a515c10e'}
params = None
2021-12-20 13:12:56,031 P[12576] [MainThread 8708] HTTP request failed: AttributeError("module 'anyio' has no attribute 'abc'")
2021-12-20 13:12:56,033 P[12576] [MainThread 8708] Error on checking proxy url http://127.0.0.1:36036/api/status : AttributeError("module 'anyio' has no attribute 'abc'")
2021-12-20 13:12:56,035 P[12576] [MainThread 8708] Error: no proxy address identified.
Check if Eikon Desktop or Eikon API Proxy is running.
2021-12-20 13:12:56,037 P[12576] [MainThread 8708] Try to handshake on url http://127.0.0.1:None/api/handshake...
2021-12-20 13:12:56,040 P[12576] [MainThread 8708] Request to http://127.0.0.1:None/api/handshake
headers = {'Content-Type': 'application/json', 'x-tr-applicationid': '10e2f58ba50c4e58aa4ddde0c910e1f6a515c10e'}
params = None
2021-12-20 13:12:56,042 P[12576] [MainThread 8708] HTTP request failed: UnsupportedProtocol("Request URL is missing an 'http://' or 'https://' protocol.")
2021-12-20 13:12:56,044 P[12576] [MainThread 8708] Error on handshake url http://127.0.0.1:None/api/handshake : UnsupportedProtocol("Request URL is missing an 'http://' or 'https://' protocol.")
2021-12-20 13:12:56,048 P[12576] [MainThread 8708] Error on handshake url http://127.0.0.1:None/api/handshake : UnsupportedProtocol("Request URL is missing an 'http://' or 'https://' protocol.")
2021-12-20 13:12:56,050 P[12576] [MainThread 8708] Port number was not identified, cannot send any request
2021-12-20 13:12:56,052 P[12576] [MainThread 8708] Received notification for closed streaming session 0
2021-12-20 13:12:56,054 P[12576] [MainThread 8708] Received notification for closed streaming session 0
2021-12-20 13:12:56,056 P[12576] [MainThread 8708] Init a Desktop session with new app_key
0 -
First, we need to check if the Eikon API proxy is running properly by accessing the following URLs via a web browser.
The output looks like this:
Next, you need to set up a new virtual environment in Conda, as mentioned by my colleague. Then, install the Eikon library in that environment to verify what the problem is.
0
Categories
- All Categories
- 6 AHS
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛