HumanSignal / label-studio

Label Studio is a multi-type data labeling and annotation tool with standardized output format
https://labelstud.io
Apache License 2.0
18.96k stars 2.36k forks source link

PermissionError: [Errno 13] Permission denied: while deploy on heroku as a container #4387

Open HRNPH opened 1 year ago

HRNPH commented 1 year ago

Describe the bug I've got PermissionError: [Errno 13] Permission denied: while deploy on Heroku as a container occur from

import pkg_resources

instead of using Heroku deploy button, I deployed directly from branch by connecting it to Heroku

To Reproduce Steps to reproduce the behavior:

  1. Go to 'Heroku'
  2. Create dynos, add postgres
  3. heroku stack:set container
  4. connect Heroku dynos with label-studio develop branch
  5. press deploy, wait for building
  6. See error

Expected behavior An app should run and serve normally in the heroku endpoint

Screenshots image

Environment (please complete the following information):

Full Stack Traces

2023-06-15T10:05:50.000000+00:00 app[api]: Build succeeded
2023-06-15T10:06:02.406864+00:00 heroku[web.1]: Starting process with command `/bin/sh -c ./deploy/heroku_run.sh`
2023-06-15T10:06:04.937809+00:00 heroku[web.1]: Process exited with status 1
2023-06-15T10:06:04.966523+00:00 heroku[web.1]: State changed from starting to crashed
2023-06-15T10:06:04.970031+00:00 heroku[web.1]: State changed from crashed to starting
2023-06-15T10:06:04.713342+00:00 app[web.1]: Traceback (most recent call last):
2023-06-15T10:06:04.713362+00:00 app[web.1]: File "/usr/local/bin/label-studio", line 33, in <module>
2023-06-15T10:06:04.713412+00:00 app[web.1]: sys.exit(load_entry_point('label-studio', 'console_scripts', 'label-studio')())
2023-06-15T10:06:04.713417+00:00 app[web.1]: File "/usr/local/bin/label-studio", line 25, in importlib_load_entry_point
2023-06-15T10:06:04.713456+00:00 app[web.1]: return next(matches).load()
2023-06-15T10:06:04.713467+00:00 app[web.1]: File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
2023-06-15T10:06:04.713527+00:00 app[web.1]: module = import_module(match.group('module'))
2023-06-15T10:06:04.713528+00:00 app[web.1]: File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
2023-06-15T10:06:04.713583+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2023-06-15T10:06:04.713594+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
2023-06-15T10:06:04.713701+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
2023-06-15T10:06:04.713732+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
2023-06-15T10:06:04.713762+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
2023-06-15T10:06:04.713791+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 883, in exec_module
2023-06-15T10:06:04.713854+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
2023-06-15T10:06:04.713885+00:00 app[web.1]: File "/label-studio/label_studio/server.py", line 28, in <module>
2023-06-15T10:06:04.713937+00:00 app[web.1]: from label_studio.core.argparser import parse_input_args
2023-06-15T10:06:04.713938+00:00 app[web.1]: File "/label-studio/label_studio/core/argparser.py", line 6, in <module>
2023-06-15T10:06:04.713981+00:00 app[web.1]: from .settings.base import EXPORT_DIR
2023-06-15T10:06:04.713992+00:00 app[web.1]: File "/label-studio/label_studio/core/settings/base.py", line 77, in <module>
2023-06-15T10:06:04.714037+00:00 app[web.1]: from label_studio.core.utils.io import get_data_dir
2023-06-15T10:06:04.714048+00:00 app[web.1]: File "/label-studio/label_studio/core/utils/io.py", line 6, in <module>
2023-06-15T10:06:04.714087+00:00 app[web.1]: import pkg_resources
2023-06-15T10:06:04.714092+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 3267, in <module>
2023-06-15T10:06:04.714464+00:00 app[web.1]: def _initialize_master_working_set():
2023-06-15T10:06:04.714472+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 3241, in _call_aside
2023-06-15T10:06:04.714816+00:00 app[web.1]: f(*args, **kwargs)
2023-06-15T10:06:04.714819+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 3279, in _initialize_master_working_set
2023-06-15T10:06:04.715170+00:00 app[web.1]: working_set = WorkingSet._build_master()
2023-06-15T10:06:04.715171+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 564, in _build_master
2023-06-15T10:06:04.715262+00:00 app[web.1]: ws = cls()
2023-06-15T10:06:04.715268+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 557, in __init__
2023-06-15T10:06:04.715350+00:00 app[web.1]: self.add_entry(entry)
2023-06-15T10:06:04.715356+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 613, in add_entry
2023-06-15T10:06:04.715442+00:00 app[web.1]: for dist in find_distributions(entry, True):
2023-06-15T10:06:04.715448+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2077, in find_on_path
2023-06-15T10:06:04.715673+00:00 app[web.1]: for dist in factory(fullpath):
2023-06-15T10:06:04.715684+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2142, in distributions_from_metadata
2023-06-15T10:06:04.715924+00:00 app[web.1]: yield Distribution.from_location(
2023-06-15T10:06:04.715932+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2606, in from_location
2023-06-15T10:06:04.716202+00:00 app[web.1]: )._reload_version()
2023-06-15T10:06:04.716208+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 3004, in _reload_version
2023-06-15T10:06:04.716533+00:00 app[web.1]: md_version = self._get_version()
2023-06-15T10:06:04.716547+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2785, in _get_version
2023-06-15T10:06:04.716836+00:00 app[web.1]: version = _version_from_file(lines)
2023-06-15T10:06:04.716844+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2569, in _version_from_file
2023-06-15T10:06:04.717108+00:00 app[web.1]: line = next(iter(version_lines), '')
2023-06-15T10:06:04.717119+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2780, in _get_metadata
2023-06-15T10:06:04.717403+00:00 app[web.1]: for line in self.get_metadata_lines(name):
2023-06-15T10:06:04.717414+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 1911, in get_metadata_lines
2023-06-15T10:06:04.717619+00:00 app[web.1]: return yield_lines(self.get_metadata(name))
2023-06-15T10:06:04.717630+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 1898, in get_metadata
2023-06-15T10:06:04.717902+00:00 app[web.1]: with io.open(self.path, encoding='utf-8', errors="replace") as f:
2023-06-15T10:06:04.717940+00:00 app[web.1]: PermissionError: [Errno 13] Permission denied: '/usr/lib/python3/dist-packages/.wh.wheel-0.37.1.egg-info'
2023-06-15T10:06:19.374440+00:00 heroku[web.1]: Starting process with command `/bin/sh -c ./deploy/heroku_run.sh`
2023-06-15T10:06:20.647210+00:00 heroku[web.1]: Process exited with status 1
2023-06-15T10:06:20.681130+00:00 heroku[web.1]: State changed from starting to crashed
2023-06-15T10:06:20.475449+00:00 app[web.1]: Traceback (most recent call last):
2023-06-15T10:06:20.475477+00:00 app[web.1]: File "/usr/local/bin/label-studio", line 33, in <module>
2023-06-15T10:06:20.475544+00:00 app[web.1]: sys.exit(load_entry_point('label-studio', 'console_scripts', 'label-studio')())
2023-06-15T10:06:20.475557+00:00 app[web.1]: File "/usr/local/bin/label-studio", line 25, in importlib_load_entry_point
2023-06-15T10:06:20.475608+00:00 app[web.1]: return next(matches).load()
2023-06-15T10:06:20.475623+00:00 app[web.1]: File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 171, in load
2023-06-15T10:06:20.475688+00:00 app[web.1]: module = import_module(match.group('module'))
2023-06-15T10:06:20.475700+00:00 app[web.1]: File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
2023-06-15T10:06:20.475752+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2023-06-15T10:06:20.475763+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
2023-06-15T10:06:20.475869+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
2023-06-15T10:06:20.475901+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
2023-06-15T10:06:20.475933+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
2023-06-15T10:06:20.475964+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 883, in exec_module
2023-06-15T10:06:20.476027+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
2023-06-15T10:06:20.476058+00:00 app[web.1]: File "/label-studio/label_studio/server.py", line 28, in <module>
2023-06-15T10:06:20.476104+00:00 app[web.1]: from label_studio.core.argparser import parse_input_args
2023-06-15T10:06:20.476118+00:00 app[web.1]: File "/label-studio/label_studio/core/argparser.py", line 6, in <module>
2023-06-15T10:06:20.476158+00:00 app[web.1]: from .settings.base import EXPORT_DIR
2023-06-15T10:06:20.476169+00:00 app[web.1]: File "/label-studio/label_studio/core/settings/base.py", line 77, in <module>
2023-06-15T10:06:20.476241+00:00 app[web.1]: from label_studio.core.utils.io import get_data_dir
2023-06-15T10:06:20.476253+00:00 app[web.1]: File "/label-studio/label_studio/core/utils/io.py", line 6, in <module>
2023-06-15T10:06:20.476294+00:00 app[web.1]: import pkg_resources
2023-06-15T10:06:20.476307+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 3267, in <module>
2023-06-15T10:06:20.476669+00:00 app[web.1]: def _initialize_master_working_set():
2023-06-15T10:06:20.476679+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 3241, in _call_aside
2023-06-15T10:06:20.477012+00:00 app[web.1]: f(*args, **kwargs)
2023-06-15T10:06:20.477025+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 3279, in _initialize_master_working_set
2023-06-15T10:06:20.477356+00:00 app[web.1]: working_set = WorkingSet._build_master()
2023-06-15T10:06:20.477369+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 564, in _build_master
2023-06-15T10:06:20.477453+00:00 app[web.1]: ws = cls()
2023-06-15T10:06:20.477464+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 557, in __init__
2023-06-15T10:06:20.477547+00:00 app[web.1]: self.add_entry(entry)
2023-06-15T10:06:20.477558+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 613, in add_entry
2023-06-15T10:06:20.477643+00:00 app[web.1]: for dist in find_distributions(entry, True):
2023-06-15T10:06:20.477654+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2077, in find_on_path
2023-06-15T10:06:20.477897+00:00 app[web.1]: for dist in factory(fullpath):
2023-06-15T10:06:20.477909+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2142, in distributions_from_metadata
2023-06-15T10:06:20.478150+00:00 app[web.1]: yield Distribution.from_location(
2023-06-15T10:06:20.478161+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2606, in from_location
2023-06-15T10:06:20.478437+00:00 app[web.1]: )._reload_version()
2023-06-15T10:06:20.478449+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 3004, in _reload_version
2023-06-15T10:06:20.478798+00:00 app[web.1]: md_version = self._get_version()
2023-06-15T10:06:20.478810+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2785, in _get_version
2023-06-15T10:06:20.479099+00:00 app[web.1]: version = _version_from_file(lines)
2023-06-15T10:06:20.479111+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2569, in _version_from_file
2023-06-15T10:06:20.479379+00:00 app[web.1]: line = next(iter(version_lines), '')
2023-06-15T10:06:20.479390+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 2780, in _get_metadata
2023-06-15T10:06:20.479676+00:00 app[web.1]: for line in self.get_metadata_lines(name):
2023-06-15T10:06:20.479687+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 1911, in get_metadata_lines
2023-06-15T10:06:20.479944+00:00 app[web.1]: return yield_lines(self.get_metadata(name))
2023-06-15T10:06:20.479956+00:00 app[web.1]: File "/usr/local/lib/python3.10/dist-packages/pkg_resources/__init__.py", line 1898, in get_metadata
2023-06-15T10:06:20.480195+00:00 app[web.1]: with io.open(self.path, encoding='utf-8', errors="replace") as f:
2023-06-15T10:06:20.480227+00:00 app[web.1]: PermissionError: [Errno 13] Permission denied: '/usr/lib/python3/dist-packages/.wh.wheel-0.37.1.egg-info'
davidlinner commented 1 year ago

Great tool, but same problem here. I used the Heroku setup link from the readme. The permission issue doesn't occur in docker image heartexlabs/label-studio:1.7.3, so it seems to be related to 1.8.0. Any suggestions from the maintainers?

erinmikailstaples commented 1 year ago

Hey all — thanks for the heads up on this and flagging for internal review here!

Appreciate the patience @davidlinner and @HRNPH :)

suzanne-stathatos commented 1 year ago

@davidlinner I also used the Heroku setup link and am running into the same problem. How were you able to specify the other docker image to get around it?

davidlinner commented 1 year ago

Hi Suzanne, I forked the repo and set the image version number manually. Please have a look into my fork for details. Beag regards, David


From: Suzanne Stathatos @.> Sent: Tuesday, July 25, 2023 11:55:29 AM To: HumanSignal/label-studio @.> Cc: David Linner @.>; Mention @.> Subject: Re: [HumanSignal/label-studio] PermissionError: [Errno 13] Permission denied: while deploy on heroku as a container (Issue #4387)

@davidlinnerhttps://github.com/davidlinner I also used the Heroku setup link and am running into the same problem. How were you able to specify the other docker image to get around it?

— Reply to this email directly, view it on GitHubhttps://github.com/HumanSignal/label-studio/issues/4387#issuecomment-1650368280, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABQJFSRLA4642YWXNOOGVGLXSAJCDANCNFSM6AAAAAAZHTYB4M. You are receiving this because you were mentioned.Message ID: @.***>

uriel-tannen commented 1 year ago

We're having the same issue when attempting to update our fork to 1.8.1. I tried manually changing our version number to 1.7.3 as suggested by davidlinnner, but this didn't work for us. @erinmikailstaples do you know if this is being worked on by HumanSignal at the moment?

upunaprosk commented 11 months ago

One-click installation: https://heroku.com/deploy?template=https://github.com/upunaprosk/label-studio/tree/heroku-persistent-pg

Fixed Dockerfile.heroku:

FROM heartexlabs/label-studio:1.7.3

ENV LABEL_STUDIO_ONE_CLICK_DEPLOY=1 \
    STORAGE_PERSISTENCE=1

COPY deploy/heroku_run.sh /label-studio/deploy/

ENTRYPOINT ["/bin/bash -c"]
jwellstx commented 7 months ago

Hello, was there an official resolution to this issue? I am facing the permissions issue with the latest version.

erinmikailstaples commented 7 months ago

Hey there,

I no longer work at HumanSignal, feel free to reach out to @.*** and they'll be happy to help :)

Thanks!

Erin

Erin Mikail Staples (she/her) Dev Advocate | Community Human | Tech Education | Comedian

📧 @.*** 🌐 erinmikailstaples.com ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/02d781a6-c621-4475-aee1-6d43c93ebcdb?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) ☎️ let's chat ( https://cal.com/erinmikail )

I’m very online — find me on… 💼 LinkedIn ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/c67554fa-344d-4de2-8121-70ba5820f2fc?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 🛠️ Polywork ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/ad28b931-5368-48a6-9e26-411f187026e7?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 👩🏼‍💻 GitHub ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/7703655c-9d10-4ece-81e2-8cf45437c59f?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) 🔗 Mastodon ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/993a3220-3276-40da-9f06-4866a4d5a8e9?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 📸 Instagram ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/489f4812-bf31-4a35-aa78-43df684b8317?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 📆 Events ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/502bf7d8-be50-4df9-850e-ed6335dd519b?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) 🎥 YouTube ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/e7c3e946-29d1-4501-a6a2-8c98643c71de?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 📹 Twitch ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/24f75329-b262-4c78-9a1f-0eff0f8e569f?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 📧 Newsletter ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/a62e540e-eec1-4158-8607-26f783efea9e?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 )

👋🏻 my working hours may not be your working hours, please don’t feel obliged to respond immediately

On Mon, Mar 11, 2024 at 12:37 AM, jwellstx < @.*** > wrote:

Hello, was there an official resolution to this issue? I am facing the permissions issue with the latest version.

— Reply to this email directly, view it on GitHub ( https://github.com/HumanSignal/label-studio/issues/4387#issuecomment-1987620791 ) , or unsubscribe ( https://github.com/notifications/unsubscribe-auth/AM4HJK5ZDKWQH36NTPSP4HLYXU7JRAVCNFSM6AAAAAAZHTYB4OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBXGYZDANZZGE ). You are receiving this because you were mentioned. Message ID: <HumanSignal/label-studio/issues/4387/1987620791 @ github. com>

jwellstx commented 7 months ago

Hi Erin, thanks for responding even though you have moved off the project! Unfortunately, I think GitHub censored the email :(

Thanks, -Justin

erinmikailstaples commented 7 months ago

Oh no — COMMUNITY at HUMANSIGNAL dot COM or COMMUNITY at LABELSTUD dot IO let me know that helps :)

Erin Mikail Staples (she/her) Dev Advocate | Community Human | Tech Education | Comedian

📧 @.*** 🌐 erinmikailstaples.com ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/02d781a6-c621-4475-aee1-6d43c93ebcdb?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) ☎️ let's chat ( https://cal.com/erinmikail )

I’m very online — find me on… 💼 LinkedIn ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/c67554fa-344d-4de2-8121-70ba5820f2fc?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 🛠️ Polywork ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/ad28b931-5368-48a6-9e26-411f187026e7?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 👩🏼‍💻 GitHub ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/7703655c-9d10-4ece-81e2-8cf45437c59f?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) 🔗 Mastodon ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/993a3220-3276-40da-9f06-4866a4d5a8e9?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 📸 Instagram ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/489f4812-bf31-4a35-aa78-43df684b8317?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 📆 Events ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/502bf7d8-be50-4df9-850e-ed6335dd519b?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) 🎥 YouTube ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/e7c3e946-29d1-4501-a6a2-8c98643c71de?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 📹 Twitch ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/24f75329-b262-4c78-9a1f-0eff0f8e569f?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 ) | 📧 Newsletter ( https://ed515793-d623-44e9-a1d2-ee17f996e35d.mailbutler.link/p2/e5a62510-8d86-4d96-aa30-8968280fefea/a62e540e-eec1-4158-8607-26f783efea9e?contactid=e5ef6ec8-6a4e-3f76-496a-007cce585c54 )

👋🏻 my working hours may not be your working hours, please don’t feel obliged to respond immediately

On Mon, Mar 11, 2024 at 8:08 PM, jwellstx < @.*** > wrote:

Hi Erin, thanks for responding even though you have moved off the project! Unfortunately, I think GitHub censored the email :(

Thanks, -Justin

— Reply to this email directly, view it on GitHub ( https://github.com/HumanSignal/label-studio/issues/4387#issuecomment-1989672737 ) , or unsubscribe ( https://github.com/notifications/unsubscribe-auth/AM4HJK7D4XMF4ORFWWO4QZLYXZIRXAVCNFSM6AAAAAAZHTYB4OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOBZGY3TENZTG4 ). You are receiving this because you were mentioned. Message ID: <HumanSignal/label-studio/issues/4387/1989672737 @ github. com>

tourdedave commented 4 months ago

It looks like the error is caused by an old version of wheel that is getting pulled in as a development dependency. Looking through the poetry.lock file you can see two versions:

[package.extras]
css = ["tinycss2 (>=1.1.0,<1.2)"]
dev = ["Sphinx (==4.3.2)", "black (==22.3.0)", "build (==0.8.0)", "flake8 (==4.0.1)", "hashin (==0.17.0)", "mypy (==0.961)", "pip-tools (==6.6.2)", "pytest (==7.1.2)", "tox (==3.25.0)", "twine (==4.0.1)", "wheel (==0.37.1)"]

and

[[package]]
name = "wheel"
version = "0.40.0"
description = "A built-package format for Python"
optional = false
python-versions = ">=3.7"
files = [
    {file = "wheel-0.40.0-py3-none-any.whl", hash = "sha256:d236b20e7cb522daf2390fa84c55eea81c5c30190f90f29ae2ca1ad8355bf247"},
    {file = "wheel-0.40.0.tar.gz", hash = "sha256:cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873"},
]

The latter is expected, and called out explicitly in the pyproject.toml file (link). It looks like this issue was introduced as part of the migration to Poetry for dependency management (re: PR #4888).

It looks like a fix might be to exclude dev dependencies when installing them in the Dockerfile. E.g., something like the following:

diff --git a/Dockerfile b/Dockerfile
index 11d56ad..cf014f0 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -79,7 +79,7 @@ COPY --chown=1001:0 label_studio/__init__.py ./label_studio/__init__.py
 # the system python. This includes label-studio itself. For caching purposes,
 # do this before copying the rest of the source code.
 RUN --mount=type=cache,target=$POETRY_CACHE_DIR \
-    poetry check --lock && poetry install
+    poetry check --lock && poetry install --no-dev

 COPY --chown=1001:0 LICENSE LICENSE
 COPY --chown=1001:0 licenses licenses
uryelah commented 3 weeks ago

Any updates on this issue? It's still happening on our fork for the version 1.13.1