AttributeError: module 'aioredis' has no attribute 'create_redis_pool'
Closed this issue ยท 12 comments
Im trying to run tanner whether by docker-compose or by manually installing , tried on multiple computers as well but getting the same error everytime,
is there something missing in the instructions or anyway to solve it?
root@ip-172-31-3-81:/home/ubuntu/tanner/docker# docker-compose up Starting tanner_phpox ... done Starting tanner_redis ... done Starting tanner_web ... done Starting tanner_api ... done Starting tanner ... done Attaching to tanner_phpox, tanner_redis, tanner_api, tanner_web, tanner tanner_phpox | sandbox.py:115: DeprecationWarning: Application.make_handler(...) is deprecated, use AppRunner API instead tanner_phpox | handler = app.make_handler() tanner_phpox | serving on ('127.0.0.1', 8088) tanner_redis | 1:C 24 Aug 2021 09:37:44.938 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo tanner_redis | 1:C 24 Aug 2021 09:37:44.938 # Redis version=6.2.5, bits=64, commit=00000000, modified=0, pid=1, just started tanner_redis | 1:C 24 Aug 2021 09:37:44.938 # Configuration loaded tanner_redis | 1:M 24 Aug 2021 09:37:44.939 * monotonic clock: POSIX clock_gettime tanner_redis | _._ tanner_redis | _.-``__ ''-._ tanner_redis | _.-`` `. `_. ''-._ Redis 6.2.5 (00000000/0) 64 bit tanner_redis | .-`` .-```. ```\/ _.,_ ''-._ tanner_redis | ( ' , .-` | `, ) Running in standalone mode tanner_redis | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 tanner_redis | | `-._ `._ / _.-' | PID: 1 tanner_redis | `-._ `-._ `-./ _.-' _.-' tanner_redis | |`-._`-._ `-.__.-' _.-'_.-'| tanner_redis | | `-._`-._ _.-'_.-' | https://redis.io tanner_redis | `-._ `-._`-.__.-'_.-' _.-' tanner_redis | |`-._`-._ `-.__.-' _.-'_.-'| tanner_redis | | `-._`-._ _.-'_.-' | tanner_redis | `-._ `-._`-.__.-'_.-' _.-' tanner_redis | `-._ `-.__.-' _.-' tanner_redis | `-._ _.-' tanner_redis | `-.__.-' tanner_redis | tanner_redis | 1:M 24 Aug 2021 09:37:44.942 # Server initialized tanner_redis | 1:M 24 Aug 2021 09:37:44.942 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. tanner_redis | 1:M 24 Aug 2021 09:37:44.943 * Ready to accept connections tanner_api | Traceback (most recent call last): tanner_api | File "/usr/bin/tannerapi", line 4, in tanner_api | __import__('pkg_resources').run_script('Tanner==0.6.0', 'tannerapi') tanner_api | File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 667, in run_script tanner_api | self.require(requires)[0].run_script(script_name, ns) tanner_api | File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1471, in run_script tanner_api | exec(script_code, namespace, namespace) tanner_api | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/EGG-INFO/scripts/tannerapi", line 20, in tanner_api | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/EGG-INFO/scripts/tannerapi", line 16, in main tanner_api | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/tanner/api/server.py", line 108, in start tanner_api | File "/usr/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete tanner_api | return future.result() tanner_api | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/tanner/redis_client.py", line 22, in get_redis_client tanner_api | AttributeError: module 'aioredis' has no attribute 'create_redis_pool' tanner_web | Traceback (most recent call last): tanner_web | File "/usr/bin/tannerweb", line 4, in tanner_web | __import__('pkg_resources').run_script('Tanner==0.6.0', 'tannerweb') tanner_web | File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 667, in run_script tanner_web | self.require(requires)[0].run_script(script_name, ns) tanner_web | File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1471, in run_script tanner_web | exec(script_code, namespace, namespace) tanner_web | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/EGG-INFO/scripts/tannerweb", line 20, in tanner_web | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/EGG-INFO/scripts/tannerweb", line 16, in main tanner_web | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/tanner/web/server.py", line 106, in start tanner_web | File "/usr/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete tanner_web | return future.result() tanner_web | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/tanner/redis_client.py", line 22, in get_redis_client tanner_web | AttributeError: module 'aioredis' has no attribute 'create_redis_pool' `
Wow, I was about to open the same issue !
I've found a workaround: in requirements.txt, downgrade the version of aioredis to 1.3.1:
aioredis==1.3.1
With this I got tanner running locally.
aioredis v2.0 made lot of changes(https://aioredis.readthedocs.io/en/latest/migration/). In that, they have changed the way to connect to a pool.
@afeena should we restrict the version in the requirements? or should we make the suggested changes to make it compatible with the latest version?
@valvolt which version of python/linux dist you use ?
I also tried to change the requirements to 1.3.1,
but It gave different error,
File "/usr/local/lib/python3.8/dist-packages/aiohttp/helpers.py", line 30
ensure_future = asyncio.async
^
SyntaxError: invalid syntax
as much as i could find since python version 3.7 async became a reserved word so thats why the error come ?
I tried to run it on python 3.8.10
Wow, I was about to open the same issue !
I've found a workaround: in requirements.txt, downgrade the version of aioredis to 1.3.1:aioredis==1.3.1
With this I got tanner running locally.
I've used the docker-compose setup. Basically, I added a sed
command to the Tanner Dockerfile, so that it looks like this:
git clone --depth=1 https://github.com/mushorg/tanner /opt/tanner && \
cp /root/dist/config.yaml /opt/tanner/tanner/data/ && \
cd /opt/tanner/ && \
sed -i 's/aioredis/aioredis==1.3.1/g' requirements.txt && \
pip3 install --no-cache-dir setuptools && \
pip3 install --no-cache-dir -r requirements.txt && \
python3 setup.py install && \
cd / && \
After downgrading to 1.3.1, I am receiving the following error. Could you please help
tanner | Traceback (most recent call last):
tanner | File "/usr/bin/tanner", line 4, in <module>
tanner | __import__('pkg_resources').run_script('Tanner==0.6.0', 'tanner')
tanner | File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 667, in run_script
tanner | self.require(requires)[0].run_script(script_name, ns)
tanner | File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 1471, in run_script
tanner | exec(script_code, namespace, namespace)
tanner | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/EGG-INFO/scripts/tanner", line 37, in <module>
tanner | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/EGG-INFO/scripts/tanner", line 33, in main
tanner | File "/usr/lib/python3.7/site-packages/Tanner-0.6.0-py3.7.egg/tanner/server.py", line 139, in start
tanner | File "/usr/lib/python3.7/site-packages/aiohttp/web.py", line 514, in run_app
tanner | loop.run_until_complete(main_task)
tanner | File "uvloop/loop.pyx", line 1501, in uvloop.loop.Loop.run_until_complete
tanner | File "/usr/lib/python3.7/site-packages/aiohttp/web.py", line 321, in _run_app
tanner | await runner.setup()
tanner | File "/usr/lib/python3.7/site-packages/aiohttp/web_runner.py", line 279, in setup
tanner | self._server = await self._make_server()
tanner | File "/usr/lib/python3.7/site-packages/aiohttp/web_runner.py", line 373, in _make_server
tanner | self._app._set_loop(loop)
tanner | File "/usr/lib/python3.7/site-packages/aiohttp/web_app.py", line 224, in _set_loop
tanner | "web.Application instance initialized with different loop"
tanner | RuntimeError: web.Application instance initialized with different loop
Got the same error as @pklanka. I found the workaround to use an older version of aiohttp and adding this to my Dockerfile:
sed -i 's/^aiohttp$/aiohttp==3.7.4.post0/g' requirements.txt && \
No thanks :)
Did this issue ever get resolved? I'm advising a friend on how to setup tanner and the docker image still appears to have Redis errors.
@ibuydan Use the version bundled with T-Pot, works like a charm.