i have a django project that runs on ubuntu 20.04 version. i use selenium versio 4.1.5 . the selenium package has the trio package as a dependecy (version 0.22.2). until i added pymongo version (4.4.1) to my project everything worked fine. when installing it i get the following error :
Traceback (most recent call last):
File "mypath/checknet-api/./manage.py", line 26, in <module>
execute_from_command_line(sys.argv)
File "mypath/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 381,in execute_from_command_line
utility.execute()
File "mypath/venv/lib/python3.9/site-packages/django/core/management/__init__.py", line 357, in execute
django.setup()
File "mypath/venv/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "mypath/venv/lib/python3.9/site-packages/django/apps/registry.py", line 122, in populate
app_config.ready()
File "mypath/<innerpath>/apps.py", line 8, in ready
import checknet.main.signals
File "mypath/<innerpath>//signals.py", line 6, in <module>
from .tasks import execute
File "mypath/<innerpath>/tasks.py", line 7, in <module>
from .bots import (
File "mypath/<innerpath>/fbi_crawler.py", line 2, in <module>
from pymongo import MongoClient
File "/mypath/venv/lib/python3.9/site-packages/pymongo/__init__.py", line 92, in <module>
from pymongo.mongo_client import MongoClient
File "mypath/venv/lib/python3.9/site-packages/pymongo/mongo_client.py", line 61, in <module>
from pymongo import (
File "mypath/venv/lib/python3.9/site-packages/pymongo/uri_parser.py", line 32, in <module>
from pymongo.srv_resolver import _HAVE_DNSPYTHON, _SrvResolver
File "mypath/venv/lib/python3.9/site-packages/pymongo/srv_resolver.py", line 21, in <module>
from dns import resolver
File "mypath/venv/lib/python3.9/site-packages/dns/resolver.py", line 30, in <module>
import dns._ddr
File "mypath/venv/lib/python3.9/site-packages/dns/_ddr.py", line 12, in <module>
import dns.nameserver
File "mypath/venv/lib/python3.9/site-packages/dns/nameserver.py", line 5, in <module>
import dns.asyncquery
File "mypath/venv/lib/python3.9/site-packages/dns/asyncquery.py", line 38, in <module>
from dns.query import (
File "mypath/venv/lib/python3.9/site-packages/dns/query.py", line 63, in <module>
import httpcore
File "mypath/venv/lib/python3.9/site-packages/httpcore/__init__.py", line 1, in <module>
from ._api import request, stream
File "mypath/venv/lib/python3.9/site-packages/httpcore/_api.py", line 5, in <module>
from ._sync.connection_pool import ConnectionPool
File "mypath/venv/lib/python3.9/site-packages/httpcore/_sync/__init__.py", line 1, in <module>
from .connection import HTTPConnection
File "mypath/venv/lib/python3.9/site-packages/httpcore/_sync/connection.py", line 12, in <module>
from .._synchronization import Lock
File "mypath/venv/lib/python3.9/site-packages/httpcore/_synchronization.py", line 13, in <module>
import trio
File "mypath/venv/lib/python3.9/site-packages/trio/__init__.py", line 19, in <module>
from ._core import TASK_STATUS_IGNORED as TASK_STATUS_IGNORED # isort: skip
File "mypath/venv/lib/python3.9/site-packages/trio/_core/__init__.py", line 21, in <module>
from ._local import RunVar
File "mypath/venv/lib/python3.9/site-packages/trio/_core/_local.py", line 5, in <module>
from . import _run
File "mypath/venv/lib/python3.9/site-packages/trio/_core/_run.py", line 2543, in <module>
from ._io_epoll import EpollIOManager as TheIOManager
File "mypath/venv/lib/python3.9/site-packages/trio/_core/_io_epoll.py", line 189, in <module>
class EpollIOManager:
File "mypath/venv/lib/python3.9/site-packages/trio/_core/_io_epoll.py", line 190, in EpollIOManager
_epoll = attr.ib(factory=select.epoll)
AttributeError: module 'select' has no attribute 'epoll'
I couldn't find anything about this problem anywhere. i think that is some kind of package mismatch because of the httpcore package (pymongo dependecy) that importing the trio package.
python version -> Python 3.9.7
i tried to install different version of the packages to check if there is a problem with specific versions . but couldn't find a solution
So the odd thing here is that it's saying
select.epolldoesn't exist. Theselectmodule is part of the standard library, and it should always haveepollif you're running on Linux. So it seems like your python install itself is broken somehow. Are you using ubuntu's python or did you get it somewhere else?