Using arcgis library in Python workflow

I'm trying to use the arcgis python library and I'm getting the following errors after adding it to the libraries section. Do I need to subscribe to a higher level subscription? Any other ideas?

Collecting msgspec==0.13.1

Downloading msgspec-0.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (177 kB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 177.8/177.8 kB 6.4 MB/s eta 0:00:00

Collecting mypy==1.5.1

Downloading mypy-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.1/12.1 MB 215.3 MB/s eta 0:00:00

Collecting arcgis==2.3.1

Downloading arcgis-2.3.1.tar.gz (46.9 MB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.9/46.9 MB 105.7 MB/s eta 0:00:00

Preparing metadata (setup.py): started

Preparing metadata (setup.py): finished with status 'done'

Collecting tomli>=1.1.0

Downloading tomli-2.0.1-py3-none-any.whl (12 kB)

Collecting mypy-extensions>=1.0.0

Downloading mypy_extensions-1.0.0-py3-none-any.whl (4.7 kB)

Collecting typing-extensions>=4.1.0

Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)

Collecting pillow

Downloading pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl (4.5 MB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.5/4.5 MB 289.1 MB/s eta 0:00:00

Collecting urllib3<3,>=1.26.1

Downloading urllib3-2.2.3-py3-none-any.whl (126 kB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 126.3/126.3 kB 128.3 MB/s eta 0:00:00

Collecting cachetools

Downloading cachetools-5.5.0-py3-none-any.whl (9.5 kB)

Collecting lxml

Downloading lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl (5.0 MB)

━━━━━━━━━━━━━━━ 1.9/5.0 MB 151.2 MB/s eta 0:00:01

ERROR: Exception:

Traceback (most recent call last):

File "/tmp/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 437, in _error_catcher

yield

File "/tmp/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 560, in read

data = self._fp_read(amt) if not fp_closed else b""

File "/tmp/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 526, in _fp_read

return self._fp.read(amt) if amt is not None else self._fp.read()

File "/tmp/lib/python3.10/site-packages/pip/_vendor/cachecontrol/filewrapper.py", line 94, in read

self.__buf.write(data)

File "/usr/local/lib/python3.10/tempfile.py", line 483, in func_wrapper

return func(*args, **kwargs)

OSError: [Errno 28] No space left on device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/tmp/lib/python3.10/site-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper

status = run_func(*args)

File "/tmp/lib/python3.10/site-packages/pip/_internal/cli/req_command.py", line 247, in wrapper

return func(self, options, args)

File "/tmp/lib/python3.10/site-packages/pip/_internal/commands/install.py", line 400, in run

requirement_set = resolver.resolve(

File "/tmp/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 92, in resolve

result = self._result = resolver.resolve(

File "/tmp/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 481, in resolve

state = resolution.resolve(requirements, max_rounds=max_rounds)

File "/tmp/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 373, in resolve

failure_causes = self._attempt_to_pin_criterion(name)

File "/tmp/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 213, in _attempt_to_pin_criterion

criteria = self._get_updated_criteria(candidate)

File "/tmp/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 204, in _get_updated_criteria

self._add_to_criteria(criteria, requirement, parent=candidate)

File "/tmp/lib/python3.10/site-packages/pip/_vendor/resolvelib/resolvers.py", line 172, in _add_to_criteria

if not criterion.candidates:

File "/tmp/lib/python3.10/site-packages/pip/_vendor/resolvelib/structs.py", line 151, in bool

return bool(self._sequence)

File "/tmp/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 155, in bool

return any(self)

File "/tmp/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in

return (c for c in iterator if id(c) not in self._incompatible_ids)

File "/tmp/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 47, in _iter_built

candidate = func()

File "/tmp/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 206, in _make_candidate_from_link

self._link_candidate_cache[link] = LinkCandidate(

File "/tmp/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 297, in init

super().init(

File "/tmp/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 162, in init

self.dist = self._prepare()

File "/tmp/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 231, in _prepare

dist = self._prepare_distribution()

File "/tmp/lib/python3.10/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 308, in _prepare_distribution

return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)

File "/tmp/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 491, in prepare_linked_requirement

return self._prepare_linked_requirement(req, parallel_builds)

File "/tmp/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 536, in _prepare_linked_requirement

local_file = unpack_url(

File "/tmp/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 166, in unpack_url

file = get_http_url(

File "/tmp/lib/python3.10/site-packages/pip/_internal/operations/prepare.py", line 107, in get_http_url

from_path, content_type = download(link, temp_dir.path)

File "/tmp/lib/python3.10/site-packages/pip/_internal/network/download.py", line 147, in call

for chunk in chunks:

File "/tmp/lib/python3.10/site-packages/pip/_internal/cli/progress_bars.py", line 53, in _rich_progress_bar

for chunk in iterable:

File "/tmp/lib/python3.10/site-packages/pip/_internal/network/utils.py", line 63, in response_chunks

for chunk in response.raw.stream(

File "/tmp/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 621, in stream

data = self.read(amt=amt, decode_content=decode_content)

File "/tmp/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 559, in read

with self._error_catcher():

File "/usr/local/lib/python3.10/contextlib.py", line 153, in exit

self.gen.throw(typ, value, traceback)

File "/tmp/lib/python3.10/site-packages/pip/_vendor/urllib3/response.py", line 454, in _error_catcher

raise ProtocolError("Connection broken: %r" % e, e)

pip._vendor.urllib3.exceptions.ProtocolError: ("Connection broken: OSError(28, 'No space left on device')", OSError(28, 'No space left on device'))

WARNING: There was an error checking the latest version of pip.

Have the same issue when trying to download Torch, not sure where to look re Retool storage capacities for the beta libraries

Hi @prmorrison! Greetings @Keith_Santos! Welcome to the forum, both of you. :slightly_smiling_face:

If you're running a cloud instance, the maximum amount of memory allocated towards a workflow seems to be about 1 GB, as documented here. Note that this is allocated for the entire runtime environment, not just the custom libraries, and that there isn't a way to modify that limit.

One of the major benefits of running a self-hosted instance is the flexibility it provides - in this case, the ability to define the WORKFLOW_MEMORY_LIMIT_MBS environment variable.

I hope that answers your questions! Don't hesitate to follow up here if you have any follow-ups.

UPDATE: I recently found out that individual Python blocks are capped separately at 256 MB!

2 Likes