Distributive-Network / PythonMonkey

A Mozilla SpiderMonkey JavaScript engine embedded into the Python VM, using the Python engine to provide the JS host environment.
https://pythonmonkey.io
Other
854 stars 40 forks source link

Space issue #402

Open oaguirre-vb opened 3 months ago

oaguirre-vb commented 3 months ago

Hello again, I wanted to ask (but not open a completely new issue, unless you guys think I should) about how much space is needed to install pythonmonkey. My main issue now is there isn't enough space within the docker container for it to be installed (3.3 gb allocated for container)

Originally posted by @oaguirre-vb in https://github.com/Distributive-Network/PythonMonkey/issues/373#issuecomment-2263297256


      To configure your current shell, you need to source
      the corresponding env file under $HOME/.cargo.

      This is usually done by running one of the following (note the leading DOT):
      . "$HOME/.cargo/env"            # For sh/bash/zsh/ash/dash/pdksh
      source "$HOME/.cargo/env.fish"  # For fish
          Updating crates.io index
           Ignored package `cbindgen v0.26.0` is already installed, use --force to override
      Installing poetry
      Retrieving Poetry metadata

      The latest version (1.7.1) is already installed.
      Path /tmp/pip-install-eoezjehq/pythonmonkey_c7578cae79504f8b997ee99af59fad58/python/pminit for pminit does not exist
      Using version ^1.4.0 for poetry-dynamic-versioning

      Updating dependencies
      Resolving dependencies...

      Package operations: 0 installs, 7 updates, 0 removals

        • Updating packaging (24.1 /tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages -> 24.1)
        • Downgrading poetry-core (1.9.0 /tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages -> 1.8.1)
        • Updating markupsafe (2.1.5 /tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages -> 2.1.5)
        • Updating tomlkit (0.13.0 /tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages -> 0.13.0)
        • Downgrading dunamai (1.22.0 /tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages -> 1.21.2)
        • Updating jinja2 (3.1.4 /tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages -> 3.1.4)
        • Updating poetry-dynamic-versioning (1.1.1 /tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages -> 1.4.0)
      Done installing dependencies
      Downloading spidermonkey source code
      Traceback (most recent call last):
        File "/tmp/pip-install-eoezjehq/pythonmonkey_c7578cae79504f8b997ee99af59fad58/build.py", line 77, in <module>
          build()
        File "/tmp/pip-install-eoezjehq/pythonmonkey_c7578cae79504f8b997ee99af59fad58/build.py", line 70, in build
          ensure_spidermonkey()
        File "/tmp/pip-install-eoezjehq/pythonmonkey_c7578cae79504f8b997ee99af59fad58/build.py", line 44, in ensure_spidermonkey
          execute("bash ./setup.sh", cwd=TOP_DIR)
        File "/tmp/pip-install-eoezjehq/pythonmonkey_c7578cae79504f8b997ee99af59fad58/build.py", line 34, in execute
          raise subprocess.CalledProcessError(return_code, cmd)
      subprocess.CalledProcessError: Command 'bash ./setup.sh' returned non-zero exit status 3.
      Traceback (most recent call last):
        File "/tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 123, in build
          self._build(zip_file)
        File "/tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 172, in _build
          self._run_build_script(self._package.build_script)
        File "/tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 262, in _run_build_script
          subprocess.check_call([self.executable.as_posix(), build_script])
        File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['/usr/bin/python3', 'build.py']' returned non-zero exit status 1.

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "/tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 113, in build
          with os.fdopen(fd, "w+b") as fd_file, zipfile.ZipFile(
        File "/usr/lib/python3.10/zipfile.py", line 1314, in __exit__
          self.close()
        File "/usr/lib/python3.10/zipfile.py", line 1851, in close
          self._write_end_record()
        File "/usr/lib/python3.10/zipfile.py", line 1949, in _write_end_record
          self.fp.flush()
      OSError: [Errno 28] No space left on device

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "/usr/local/lib/python3.10/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/usr/local/lib/python3.10/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/usr/local/lib/python3.10/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
          return _build_backend().build_wheel(wheel_directory, config_settings,
        File "/tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/api.py", line 58, in build_wheel
          return WheelBuilder.make_in(
        File "/tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 88, in make_in
          wb.build(target_dir=directory)
        File "/tmp/pip-build-env-sulf1v9l/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 113, in build
          with os.fdopen(fd, "w+b") as fd_file, zipfile.ZipFile(
      OSError: [Errno 28] No space left on device
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pythonmonkey
  WARNING: Building wheel for aiohttp failed: [Errno 28] No space left on device: '/root/.cache/pip/wheels/e7/5f/ae/d0338297db272dfca22989c2e424c80772c11c352c64d21e46'
  WARNING: Building wheel for pminit failed: [Errno 28] No space left on device: '/root/.cache/pip/wheels/f5'
  WARNING: Building wheel for Brotli failed: [Errno 28] No space left on device: '/root/.cache/pip/wheels/1f'
  WARNING: Building wheel for pycares failed: [Errno 28] No space left on device: '/root/.cache/pip/wheels/d1'
Failed to build pythonmonkey aiohttp pminit Brotli pycares
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pythonmonkey, aiohttp, pminit, Brotli, pycares)
wiwichips commented 3 months ago

Hi @oaguirre-vb ,

installing PythonMonkey in a fresh container - I'm observing my filesystem usage increase by 130mb running df before and after pip3 install pythonmonkey.

Based on your output, it looks like you're building PythonMonkey from source (which includes compiling SpiderMonkey) - this will take significantly more space on your disk than installing a pre-compiled binary of PythonMonkey.

What command are you using to install PythonMonkey?

If you use pip3 install pythonmonkey, it should install PythonMonkey with a pre-compiled binary (as long as we support your architecture) and not take up as much space.


Please let us know


Thanks for using PythonMonkey!

oaguirre-vb commented 3 months ago

Not sure if pythonmonkey supports that architecture, but appreciate any help/guidence.