mljar/mercury

Fail to install with pip on macOS

Closed this issue · 6 comments

spqw commented

System - macOS 14.2.1
Python version - python 3.12.1 installed with pyenv
pip version 23.3.2

Logs

❯ pip install -U mercury
Collecting mercury
  Using cached mercury-2.3.7.tar.gz (2.6 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting django==4.2.2 (from mercury)
  Using cached Django-4.2.2-py3-none-any.whl.metadata (4.1 kB)
Collecting djangorestframework==3.14.0 (from mercury)
  Using cached djangorestframework-3.14.0-py3-none-any.whl (1.1 MB)
Collecting django-filter==21.1 (from mercury)
  Using cached django_filter-21.1-py3-none-any.whl (81 kB)
Collecting markdown==3.3.6 (from mercury)
  Using cached Markdown-3.3.6-py3-none-any.whl (97 kB)
Collecting celery>=5.1.2 (from mercury)
  Using cached celery-5.3.6-py3-none-any.whl.metadata (21 kB)
Collecting sqlalchemy==1.4.27 (from mercury)
  Using cached SQLAlchemy-1.4.27.tar.gz (7.9 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting gevent (from mercury)
  Using cached gevent-23.9.1-cp312-cp312-macosx_11_0_universal2.whl.metadata (13 kB)
Requirement already satisfied: nbconvert>=7.8.0 in /Users/lion/.pyenv/versions/jupyter/lib/python3.12/site-packages (from mercury) (7.14.0)
Collecting ipython-genutils (from mercury)
  Using cached ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
Collecting pyyaml==6.0 (from mercury)
  Using cached PyYAML-6.0.tar.gz (124 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [54 lines of output]
      running egg_info
      writing lib/PyYAML.egg-info/PKG-INFO
      writing dependency_links to lib/PyYAML.egg-info/dependency_links.txt
      writing top-level names to lib/PyYAML.egg-info/top_level.txt
      Traceback (most recent call last):
        File "/Users/lion/.pyenv/versions/jupyter/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/Users/lion/.pyenv/versions/jupyter/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/Users/lion/.pyenv/versions/jupyter/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 288, in <module>
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
                 ^^^^^^^^^^^^^^^^^^
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 321, in run
          self.find_sources()
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 329, in find_sources
          mm.run()
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 551, in run
          self.add_defaults()
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 589, in add_defaults
          sdist.add_defaults(self)
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/command/sdist.py", line 112, in add_defaults
          super().add_defaults()
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/sdist.py", line 251, in add_defaults
          self._add_defaults_ext()
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/sdist.py", line 336, in _add_defaults_ext
          self.filelist.extend(build_ext.get_source_files())
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "<string>", line 204, in get_source_files
        File "/private/var/folders/6y/z65zynvs5ybd0bgfpkn23f0h0000gr/T/pip-build-env-35gncomi/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 107, in __getattr__
          raise AttributeError(attr)
      AttributeError: cython_sources
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Hi @spqw,
Please try to use Python 3.11.

spqw commented

This worked with python 3.11.4
Thanks!

Great! May I ask what would you like to build with Mercury?

spqw commented

I am exploring ways to set up a deployment / automation pipeline as a simpler alternative to tools like the following

  • runway.team
  • refine.dev
  • windmill.dev
  • retool.com

What are preferred ways to implement scheduling?

What would you like to schedule? How many jobs and how long they run? Could you please provide some details?

spqw commented

By scheduling I mean triggering some scripts at a given time during the week (in the context of a deployment pipeline)
Mostly HTTP requests using curl : post a message to slack, create a version in Jira,
Also triggering a Github Actions job and show the output
Some git operations too

So something around 10 or 20 jobs
I'll start looking at jupyter-scheduler