jupyterhub / the-littlest-jupyterhub

Simple JupyterHub distribution for 1-100 users on a single server
https://tljh.jupyter.org
BSD 3-Clause "New" or "Revised" License
1.04k stars 340 forks source link

ruamel.yaml==0.15 conflict when running tljh-config #762

Open hpcchris opened 2 years ago

hpcchris commented 2 years ago

I'm getting this error when I try to run tljh-config:

tljh-config show

Traceback (most recent call last): File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 574, in _build_master ws.require(requires) File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 892, in require needed = self.resolve(parse_requirements(requirements)) File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 783, in resolve raise VersionConflict(dist, req).with_context(dependent_req) pkg_resources.ContextualVersionConflict: (ruamel.yaml 0.17.17 (/opt/tljh/hub/lib/python3.6/site-packages), Requirement.parse('ruamel.yaml==0.15.*'), {'the-littlest-jupyterhub'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/bin/tljh-config", line 6, in from pkg_resources import load_entry_point File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 3088, in @_call_aside File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 3072, in _call_aside f(*args, *kwargs) File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 3101, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 576, in _build_master return cls._build_from_requirements(requires) File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 589, in _build_from_requirements dists = ws.resolve(reqs, Environment()) File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 778, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'ruamel.yaml==0.15.' distribution was not found and is required by the-littlest-jupyterhub

welcome[bot] commented 2 years ago

Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! :hugs:
If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively. welcome You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! :wave:
Welcome to the Jupyter community! :tada:

hpcchris commented 2 years ago

Where I'm seeing the error:

$ tljh-config show users: admin:

$ curl -L https://tljh.jupyter.org/bootstrap.py | python3 - --admin chris % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 13989 100 13989 0 0 120k 0 --:--:-- --:--:-- --:--:-- 120k Existing TLJH installation detected, upgrading... Upgrading pip... Upgrading TLJH installer... Running TLJH installer... Setting up admin users Granting passwordless sudo to JupyterHub admins... Setting up user environment...

==> WARNING: A newer version of conda exists. <== current version: 4.8.1 latest version: 4.10.3

Please update conda by running

$ conda update -n base -c defaults conda

Setting up JupyterHub... Waiting for JupyterHub to come up (1/20 tries) Waiting for JupyterHub to come up (2/20 tries) Waiting for JupyterHub to come up (3/20 tries) Done!

$ tljh-config show Traceback (most recent call last): File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 574, in _build_master ws.require(requires) File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 892, in require needed = self.resolve(parse_requirements(requirements)) File "/opt/tljh/hub/lib/python3.6/site-packages/pkg_resources/init.py", line 783, in resolve raise VersionConflict(dist, req).with_context(dependent_req) pkg_resources.ContextualVersionConflict: (ruamel.yaml 0.17.17 (/opt/tljh/hub/lib/python3.6/site-packages), Requirement.parse('ruamel.yaml==0.15.*'), {'the-littlest-jupyterhub'})

manics commented 2 years ago

I can't reproduce your error. What operating system are you using? It it an official distribution with no modifications, or have you installed other software or customised it in any way?

hpcchris commented 2 years ago

I think it's a pretty vanilla Ubuntu, I got it from a public marketplace associated with our hybrid cloud provider (OpenNebula). They've added some cloud-init style customizations but nothing really profound. I haven't done anything to the image other than installing TLJH.

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
manics commented 2 years ago

I've just noticed you were upgrading an existing TLJH installation. Do you know how old your previous version was?

hpcchris commented 2 years ago

I see this when I log into my hub, before trying an upgrade: JupyterHub 1.4.0 20211119232739

Is that a timestamp showing the last time the installation was touched?

v-gar commented 2 years ago

Hello, I encountered the same error and could it trace down to the file /opt/tljh/hub/lib/python3.8/site-packages/the_littlest_jupyterhub-0.1.egg-info/requires.txt.

It contained the following contents:

backoff
bcrypt
jinja2
jupyterhub-traefik-proxy==0.2.*
passlib
pluggy>0.7<1.0
requests
ruamel.yaml==0.15.*

There you can see that the versions which were bumped in the meantime (i.e. jupyterhub-traefik-proxy, pluggy and ruamel.yaml) are not yet represented. If you change the versions manually based on the dependency changes in the setup.py, the scripts will eventually run:

backoff
bcrypt
jinja2
jupyterhub-traefik-proxy==0.3.*
passlib
pluggy==1.*
requests
ruamel.yaml==0.17.*

I think this happens because the version of the the-littlest-jupyterhub Python package was not bumped after upgrading dependencies here in the repo.