marimo-team / marimo

A reactive notebook for Python — run reproducible experiments, execute as a script, deploy as an app, and version with git.
https://marimo.io
Apache License 2.0
6.93k stars 246 forks source link

Using uv with symlinks breaks install #2384

Closed falkaer closed 1 month ago

falkaer commented 1 month ago

Describe the bug

When installing marimo using uv with --link-mode=symlink installation finishes without errors, but when going to the marimo webui all assets 404, showing only a blank page. I tried removing all uv-related cache, so it doesn't seem to be due to a corrupted cache. Everything works fine if not using symlinks. Because the entire environment gets installed with the same link-mode, it's possible that this is a bug in a dependency.

I have switched to using --link-mode=copy as a workaround (I originally used symlinks because it was the only alternative to hardlinks in earlier versions of uv)

Environment

{ "marimo": "0.8.18", "OS": "Linux", "OS Version": "6.10.10-arch1-1", "Processor": "", "Python Version": "3.11.9", "Binaries": { "Browser": "--", "Node": "v22.9.0" }, "Dependencies": { "click": "8.1.7", "importlib-resources": "missing", "jedi": "0.19.1", "markdown": "3.6", "pygments": "2.17.2", "pymdown-extensions": "10.7.1", "ruff": "0.6.7", "starlette": "0.37.2", "tomlkit": "0.12.4", "typing-extensions": "4.11.0", "uvicorn": "0.29.0", "websockets": "12.0" }, "Optional Dependencies": { "altair": "5.3.0", "pandas": "2.1.1", "pyarrow": "15.0.2" } }

Code to reproduce

mkdir marimo-mwe cd marimo-mwe uv init uv add marimo --link-mode=symlink source .venv/bin/activate marimo edit

mscolnick commented 1 month ago

@falkaer, we don't enable symlink resolution with our assets by default (the server we use doesn't either for security reasons).

you can enable this via:

[server]
follow_symlink = true

in your marimo config, which can be found via marimo config show