Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatible packages when trying to install seleniumbase. #2951

Closed
BarnabasSzabolcs opened this issue Jul 22, 2024 · 2 comments
Closed

Incompatible packages when trying to install seleniumbase. #2951

BarnabasSzabolcs opened this issue Jul 22, 2024 · 2 comments
Labels
question Someone is looking for answers requirements workaround exists You can reach your destination if you do this...

Comments

@BarnabasSzabolcs
Copy link

BarnabasSzabolcs commented Jul 22, 2024

Hi,
I love your project and I was sooo enthusiastic to integrate it! 😍
Unfortunately, I have received the following error when trying to install seleniumbase:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
seleniumbase 4.28.7 requires chardet==5.2.0, but you have chardet 3.0.4 which is incompatible.
seleniumbase 4.28.7 requires h11==0.14.0, but you have h11 0.9.0 which is incompatible.
seleniumbase 4.28.7 requires idna==3.7, but you have idna 2.10 which is incompatible.
seleniumbase 4.28.7 requires requests==2.31.0, but you have requests 2.32.3 which is incompatible.
seleniumbase 4.28.7 requires selenium==4.22.0; python_version >= "3.8", but you have selenium 4.23.0 which is incompatible.
seleniumbase 4.28.7 requires typing-extensions>=4.12.2; python_version >= "3.8", but you have typing-extensions 4.9.0 which is incompatible.

Is it possible to relax the project requirements a bit?
(e.g. googletrans's latest version still requires chardet 3.0.4, but requests, idna, h11 and typing extensions are all package-required dependencies for me...)

Thanks!
Barney

p.s.

my requirements.in

channels  
channels_redis  
django-static-sitemaps
gunicorn
psycopg2-binary==2.9.9  # it is the latest
django==3.2.19  # ^5 is the latest
django-compressor
django-crispy-forms
django-hosts
django-picklefield
django-redis
django-simple-menu
djangorestframework
drf-access-policy  
django-dynamic-preferences
requests
pypugjs
minify-html
sortedcontainers
datrie  
django-rosetta
django-sslserver
django-mass-edit  
regex
django-debug-toolbar  
google-cloud-translate  
googletrans
polib  
hanziconv  
jieba  
Pillow 
pybktree 
editdistance 
selenium
pykakasi 
romkan 
more-itertools
unidecode
python-dotenv  
django-allauth==0.50.0  
dj-rest-auth  
django-cors-headers  
django-rest-knox  
django-mama-cas  
django-cas-ng  
django-cleanup  
django-q 
pytz  
redgreenunittest  
tqdm  
pyyaml
ruamel.yaml  
indic-transliteration
pydub  
mishkal
codernitydb3   
lang-trans
redis
cachetools  
sentry-sdk[django]  

my requirements.txt (if it is of any help for you):

#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
#    pip-compile --annotation-style=line
#
alyahmor==0.2             # via mishkal, qalsadi
arabic-stopwords==0.4.3   # via alyahmor, qalsadi
arramooz-pysqlite==0.4.2  # via alyahmor, mishkal, qalsadi
arrow==1.3.0              # via django-q
asgiref==3.8.1            # via channels, channels-redis, django, django-cors-headers
asmai==0.1                # via mishkal
async-timeout==4.0.3      # via redis
attrs==23.2.0             # via outcome, trio
backports-functools-lru-cache==2.0.0  # via indic-transliteration
blessed==1.20.0           # via django-q
cachetools==5.4.0         # via -r requirements.in, google-auth
certifi==2024.7.4         # via httpx, requests, selenium, sentry-sdk
cffi==1.16.0              # via cryptography
channels==4.0.0           # via -r requirements.in, channels-redis
channels-redis==4.2.0     # via -r requirements.in
chardet==3.0.4            # via httpx
charset-normalizer==3.3.2  # via pypugjs, requests
click==8.1.7              # via typer
codernitydb3==0.6.0       # via -r requirements.in, qalsadi
cryptography==43.0.0      # via pyjwt
datrie==0.8.2             # via -r requirements.in
defusedxml==0.7.1         # via python3-openid
deprecated==1.2.14        # via pykakasi
dj-rest-auth==6.0.0       # via -r requirements.in
django==3.2.19            # via -r requirements.in, channels, dj-rest-auth, django-allauth, django-appconf, django-cas-ng, django-cors-headers, django-crispy-forms, django-debug-toolbar, django-dynamic-preferences, django-mass-edit, django-picklefield, django-q, django-redis, django-rest-knox, django-rosetta, django-simple-menu, django-sslserver, django-static-sitemaps, djangorestframework, sentry-sdk
django-allauth==0.50.0    # via -r requirements.in
django-appconf==1.0.6     # via django-compressor
django-cas-ng==5.0.1      # via -r requirements.in
django-cleanup==8.1.0     # via -r requirements.in
django-compressor==4.4    # via -r requirements.in
django-cors-headers==4.4.0  # via -r requirements.in
django-crispy-forms==2.0  # via -r requirements.in
django-debug-toolbar==4.3.0  # via -r requirements.in
django-dynamic-preferences==1.16.0  # via -r requirements.in
django-hosts==6.0         # via -r requirements.in
django-mama-cas==2.5.0    # via -r requirements.in
django-mass-edit==3.5.0   # via -r requirements.in
django-picklefield==3.2   # via -r requirements.in, django-q
django-q==1.3.6           # via -r requirements.in
django-redis==5.4.0       # via -r requirements.in
django-rest-knox==5.0.1   # via -r requirements.in
django-rosetta==0.9.9     # via -r requirements.in
django-simple-menu==2.1.3  # via -r requirements.in
django-sslserver==0.22    # via -r requirements.in
django-static-sitemaps==5.0.0  # via -r requirements.in
djangorestframework==3.15.1  # via -r requirements.in, dj-rest-auth, django-rest-knox, drf-access-policy
drf-access-policy==1.5.0  # via -r requirements.in
editdistance==0.8.1       # via -r requirements.in
google-api-core[grpc]==2.19.1  # via google-cloud-core, google-cloud-translate
google-auth==2.32.0       # via google-api-core, google-cloud-core, google-cloud-translate
google-cloud-core==2.4.1  # via google-cloud-translate
google-cloud-translate==3.15.4  # via -r requirements.in
googleapis-common-protos==1.63.2  # via google-api-core, grpcio-status
googletrans==3.0.0        # via -r requirements.in
grpcio==1.65.1            # via google-api-core, grpcio-status
grpcio-status==1.65.1     # via google-api-core
gunicorn==22.0.0          # via -r requirements.in
h11==0.9.0                # via httpcore, wsproto
h2==3.2.0                 # via httpcore
hanziconv==0.3.2          # via -r requirements.in
hpack==3.0.0              # via h2
hstspreload==2024.7.1     # via httpx
httpcore==0.9.1           # via httpx
httpx==0.13.3             # via googletrans
hyperframe==5.2.0         # via h2
idna==2.10                # via httpx, requests, trio
indic-transliteration==2.3.60  # via -r requirements.in
jaconv==0.3.4             # via pykakasi
jieba==0.42.1             # via -r requirements.in
lang-trans==0.6.0         # via -r requirements.in
libqutrub==1.2.4.1        # via alyahmor, mishkal, qalsadi, sylajone
lxml==5.2.2               # via python-cas
markdown-it-py==3.0.0     # via rich
maskouk-pysqlite==0.1     # via mishkal
mdurl==0.1.2              # via markdown-it-py
minify-html==0.15.0       # via -r requirements.in
mishkal==0.4.1            # via -r requirements.in
more-itertools==10.3.0    # via -r requirements.in
msgpack==1.0.8            # via channels-redis
mysam-tagmanager==0.4     # via mishkal, qalsadi
naftawayh==0.4            # via mishkal, qalsadi, sylajone
oauthlib==3.2.2           # via requests-oauthlib
outcome==1.3.0.post0      # via trio
packaging==24.1           # via gunicorn
persisting-theory==1.0    # via django-dynamic-preferences
pickledb==0.9.2           # via mishkal, qalsadi, sylajone
pillow==10.4.0            # via -r requirements.in
polib==1.2.0              # via -r requirements.in, django-rosetta
proto-plus==1.24.0        # via google-api-core, google-cloud-translate
protobuf==5.27.2          # via google-api-core, google-cloud-translate, googleapis-common-protos, grpcio-status, proto-plus
psycopg2-binary==2.9.9    # via -r requirements.in
pyarabic==0.6.15          # via alyahmor, arabic-stopwords, arramooz-pysqlite, asmai, libqutrub, maskouk-pysqlite, mishkal, naftawayh, qalsadi, sylajone, tashaphyne
pyasn1==0.6.0             # via pyasn1-modules, rsa
pyasn1-modules==0.4.0     # via google-auth
pybktree==1.1             # via -r requirements.in
pycparser==2.22           # via cffi
pydub==0.25.1             # via -r requirements.in
pygments==2.18.0          # via redgreenunittest, rich
pyjwt[crypto]==2.8.0      # via django-allauth
pykakasi==2.3.0           # via -r requirements.in
pyparsing==3.1.2          # via drf-access-policy
pypugjs==5.11.0           # via -r requirements.in
pysocks==1.7.1            # via urllib3
python-cas==1.6.0         # via django-cas-ng
python-dateutil==2.9.0.post0  # via arrow
python-dotenv==1.0.1      # via -r requirements.in
python3-openid==3.2.0     # via django-allauth
pytz==2024.1              # via -r requirements.in, django
pyyaml==6.0.1             # via -r requirements.in
qalsadi==0.5              # via mishkal, sylajone
rcssmin==1.1.1            # via django-compressor
redgreenunittest==0.1.1   # via -r requirements.in
redis==5.0.7              # via -r requirements.in, channels-redis, django-redis
regex==2024.5.15          # via -r requirements.in, indic-transliteration
requests==2.32.3          # via -r requirements.in, django-allauth, django-mama-cas, django-rosetta, google-api-core, python-cas, requests-oauthlib
requests-oauthlib==2.0.0  # via django-allauth
rfc3986==1.5.0            # via httpx
rich==13.7.1              # via typer
rjsmin==1.2.1             # via django-compressor
roman==4.2                # via indic-transliteration
romkan==0.2.1             # via -r requirements.in
rsa==4.9                  # via google-auth
ruamel-yaml==0.18.6       # via -r requirements.in
ruamel-yaml-clib==0.2.8   # via ruamel-yaml
selenium==4.23.0          # via -r requirements.in
sentry-sdk[django]==2.10.0  # via -r requirements.in
shellingham==1.5.4        # via typer
six==1.16.0               # via blessed, django-dynamic-preferences, django-static-sitemaps, pyarabic, pypugjs, python-cas, python-dateutil
sniffio==1.3.1            # via httpcore, httpx, trio
sortedcontainers==2.4.0   # via -r requirements.in, trio
sqlparse==0.5.1           # via django, django-debug-toolbar
sylajone==0.3.1           # via mishkal
tashaphyne==0.3.6         # via mishkal, naftawayh, qalsadi
toml==0.10.2              # via indic-transliteration
tqdm==4.66.4              # via -r requirements.in
trio==0.26.0              # via selenium, trio-websocket
trio-websocket==0.11.1    # via selenium
typer==0.12.3             # via indic-transliteration
types-python-dateutil==2.9.0.20240316  # via arrow
typing-extensions==4.9.0  # via selenium, typer
unidecode==1.3.8          # via -r requirements.in
urllib3[socks]==2.2.2     # via requests, selenium, sentry-sdk
wcwidth==0.2.13           # via blessed
websocket-client==1.8.0   # via selenium
wrapt==1.16.0             # via deprecated
wsproto==1.2.0            # via trio-websocket

# The following packages are considered to be unsafe in a requirements file:
# setuptools
@mdmintz mdmintz added question Someone is looking for answers requirements workaround exists You can reach your destination if you do this... labels Jul 22, 2024
@mdmintz
Copy link
Member

mdmintz commented Jul 22, 2024

The package you use, https://pypi.org/project/googletrans/, was last released 4 years ago (Jun 14, 2020).
The dependency that it has, https://pypi.org/project/chardet/3.0.4/, was released 7 years ago (Jun 8, 2017).
Those are very out-of-date. Your best option may be to use a separate virtual environment so that you don't run into dependency conflicts, as SeleniumBase uses much newer versions of dependencies, which are required.

As for some of your other conflicts:

  • seleniumbase 4.28.7 requires selenium==4.22.0; python_version >= "3.8", but you have selenium 4.23.0 which is incompatible.

There's an issue with selenium 4.23.0 - SeleniumHQ/selenium#14278
That's what caused seleniumbase 4.28.7 requires typing-extensions>=4.12.2; python_version >= "3.8", but you have typing-extensions 4.9.0 which is incompatible.

  • seleniumbase 4.28.7 requires requests==2.31.0, but you have requests 2.32.3 which is incompatible.

There are multiple issues with requests 2.32.3 (eg. psf/requests#6730 (comment)) and other issues with 2.32.x.

SeleniumBase runs a lot of extensive testing, so if it pins a minimum version of a dependency, then it's probably for good reason. (Or if it pins an exact version of a dependency, then it's also probably for a good reason.) We do hope that selenium and requests ship fixes for their recent issues soon, so that those dependencies can be refreshed.

@mdmintz mdmintz closed this as completed Jul 22, 2024
@BarnabasSzabolcs
Copy link
Author

Thanks a lot, mdmintz!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Someone is looking for answers requirements workaround exists You can reach your destination if you do this...
Projects
None yet
Development

No branches or pull requests

2 participants