openpi icon indicating copy to clipboard operation
openpi copied to clipboard

uv install error

Open NBdadasama opened this issue 8 months ago • 13 comments

I did not get any pyav related errors during my previous installation, but recently I got this error in a new environment.

Image

NBdadasama avatar May 09 '25 01:05 NBdadasama

I just got the same error here. Looking for help

jerry007005 avatar May 09 '25 02:05 jerry007005

it runs fine on a fresh env we have:

GIT_LFS_SKIP_SMUDGE=1 uv sync
Using CPython 3.11.9
Creating virtual environment at: .venv
Resolved 254 packages in 3ms
      Built openpi-client @ file:///home_weka/haohuanw/openpi-issue-472/openpi/packages/openpi-client
      Built openpi @ file:///home_weka/haohuanw/openpi-issue-472/openpi
      Built draccus @ git+https://github.com/dlwh/draccus.git@9b690730ca108930519f48cc5dead72a72fd27cb
      Built lerobot @ git+https://github.com/huggingface/lerobot@6674e368249472c91382eb54bb8501c94c7f0c56
      Built tree==0.2.4
      Built asciitree==0.3.3
Prepared 219 packages in 48.69s
Installed 241 packages in 23.05s

and

GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .
Resolved 203 packages in 1.51s
    Updated https://github.com/dlwh/draccus.git (54594637b60266125660170c34a6ba12105fb53a)
      Built draccus @ git+https://github.com/dlwh/draccus.git@54594637b60266125660170c34a6ba12105fb53a
Prepared 1 package in 7.15s
Uninstalled 1 package in 192ms
Installed 1 package in 148ms
 - draccus==0.9.3 (from git+https://github.com/dlwh/draccus.git@9b690730ca108930519f48cc5dead72a72fd27cb)
 + draccus==0.11.1 (from git+https://github.com/dlwh/draccus.git@54594637b60266125660170c34a6ba12105fb53a)

what environment are you using? i can try test it there.

haohuanw avatar May 09 '25 05:05 haohuanw

it runs fine on a fresh env we have:

GIT_LFS_SKIP_SMUDGE=1 uv sync
Using CPython 3.11.9
Creating virtual environment at: .venv
Resolved 254 packages in 3ms
      Built openpi-client @ file:///home_weka/haohuanw/openpi-issue-472/openpi/packages/openpi-client
      Built openpi @ file:///home_weka/haohuanw/openpi-issue-472/openpi
      Built draccus @ git+https://github.com/dlwh/draccus.git@9b690730ca108930519f48cc5dead72a72fd27cb
      Built lerobot @ git+https://github.com/huggingface/lerobot@6674e368249472c91382eb54bb8501c94c7f0c56
      Built tree==0.2.4
      Built asciitree==0.3.3
Prepared 219 packages in 48.69s
Installed 241 packages in 23.05s

and

GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .
Resolved 203 packages in 1.51s
    Updated https://github.com/dlwh/draccus.git (54594637b60266125660170c34a6ba12105fb53a)
      Built draccus @ git+https://github.com/dlwh/draccus.git@54594637b60266125660170c34a6ba12105fb53a
Prepared 1 package in 7.15s
Uninstalled 1 package in 192ms
Installed 1 package in 148ms
 - draccus==0.9.3 (from git+https://github.com/dlwh/draccus.git@9b690730ca108930519f48cc5dead72a72fd27cb)
 + draccus==0.11.1 (from git+https://github.com/dlwh/draccus.git@54594637b60266125660170c34a6ba12105fb53a)

what environment are you using? i can try test it there.

I failed with uv install today on cluster, I was also able to install the env on my local desktop few days ago with exact the python 3.11.12

The desktop os version:

Distributor ID: Ubuntu Description: Ubuntu 22.04.5 LTS Release: 22.04

The cluster os version:

LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: Rocky Description: Rocky Linux release 9.4 (Blue Onyx) Release: 9.4 Codename: BlueOnyx

jerry007005 avatar May 09 '25 05:05 jerry007005

we haven't tested anything with Rockylinux on our end. is it possible to use ubuntu? Alternatively, you could run with an ubuntu container on your cluster.

haohuanw avatar May 09 '25 07:05 haohuanw

If I use docker to build, this error will not appear. A week ago, I used the official command to configure the environment and there was no error. But recently, this error will appear. I still get this error when I install the pyav related packages. I may not be good at using uv. It may have an advantage in python package management, but I am better at using conda.

NBdadasama avatar May 09 '25 08:05 NBdadasama

i have also tried with 3.11.12 on ubuntu and it works fine:

uv sync
Using CPython 3.11.12
Creating virtual environment at: .venv
Resolved 254 packages in 2ms
      Built openpi-client @ file:///home_weka/haohuanw/openpi-issue-472/openpi/packages/openpi-client
      Built openpi @ file:///home_weka/haohuanw/openpi-issue-472/openpi
      Built lerobot @ git+https://github.com/huggingface/lerobot@6674e368249472c91382eb54bb8501c94c7f0c56
      Built draccus @ git+https://github.com/dlwh/draccus.git@9b690730ca108930519f48cc5dead72a72fd27cb
      Built asciitree==0.3.3
      Built tree==0.2.4
Prepared 241 packages in 51.33s
Installed 241 packages in 23.06s

unfortunately, i don't have a rockylinux vm to test, but i have tried running in rockylinux container and it works fine:

[root@b851d994849f openpi]# uv sync
Using CPython 3.11.12
Creating virtual environment at: .venv
Resolved 254 packages in 2ms
      Built openpi-client @ file:///code/openpi/packages/openpi-client
      Built openpi @ file:///code/openpi
    Updated https://github.com/huggingface/lerobot (6674e368249472c91382eb54bb8501c94c7f0c56)
    Updated https://github.com/dlwh/draccus.git (9b690730ca108930519f48cc5dead72a72fd27cb)
      Built draccus @ git+https://github.com/dlwh/draccus.git@9b690730ca108930519f48cc5dead72a72fd27cb
      Built lerobot @ git+https://github.com/huggingface/lerobot@6674e368249472c91382eb54bb8501c94c7f0c56
      Built asciitree==0.3.3
      Built tree==0.2.4
Prepared 241 packages in 28.52s
░░░░░░░░░░░░░░░░░░░░ [0/241] Installing wheels...                                                           warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
         If the cache and target directories are on different filesystems, hardlinking may not be supported.
         If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Installed 241 packages in 32.69s

[root@b851d994849f openpi]# cat /etc/os-release
NAME="Rocky Linux"
VERSION="9.4 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.4"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.4 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.4"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.4"

could you double check and make sure there are no accidental modifications to either pyproject.toml or uv.lock file?

haohuanw avatar May 09 '25 09:05 haohuanw

The root cause isn’t OpenPI itself—it’s the outdated lerobot commit the repo is pinned to. That old commit still depends on the package name pyav, which is wrong; the library is now published as av. Seems like this was fixed upstream in lerobot at commit ed83cbd4f2091a3e97cdd0c48cc657020c037240.

If you manually bump the lerobot hash in uv.lock, the installation goes through, but you’ll then hit other incompatibilities because OpenPI was written against the older lerobot API. The long-term fix is for OpenPI to update its lerobot reference to at least ed83cbd and adjust any breaking changes accordingly.

I’m not sure whether we can simply patch the install script to pull av in place of pyav while still using the original lerobot commit.

jinPrelude avatar May 09 '25 09:05 jinPrelude

根本原因并非 OpenPI 本身,而是该仓库所绑定的过时的 lerobot 提交。该旧提交仍然依赖于包名 pyav,而这个包名是错误的;该库现在以 av 的形式发布。这个问题似乎已在 lerobot 上游的提交中得到修复ed83cbd4f2091a3e97cdd0c48cc657020c037240

如果您在 uv.lock 中手动修改 lerobot 哈希值,安装过程会顺利进行,但随后会遇到其他不兼容问题,因为 OpenPI 是基于较旧的 lerobot API 编写的。长期解决方案是让 OpenPI 将其 lerobot 引用更新到至少 ed83cbd,并相应地调整任何重大更改。

我不确定我们是否可以简单地修补安装脚本以将 av 替换为 pyav,同时仍然使用原始的 lerobot 提交。

i think that is the reason.

NBdadasama avatar May 09 '25 09:05 NBdadasama

The root cause isn’t OpenPI itself—it’s the outdated lerobot commit the repo is pinned to.

it's possible but unlikely to be the case in my opinion since it won't explain why another fresh installation inside the container still works (there are no uv cache exists). uv.lock contains a package as pyav with links that are still valid: https://github.com/Physical-Intelligence/openpi/blob/main/uv.lock#L3274-L3298

since i am not able to repro it in any environment that is available to me, you can follow these steps as a workaround to unblock yourself if it could fix the issue:

  1. create a fork on lerobot
  2. on the forked repo, checkout https://github.com/huggingface/lerobot/commit/6674e368249472c91382eb54bb8501c94c7f0c56 update pyav deps and cherry-pick https://github.com/huggingface/lerobot/commit/ed83cbd4f2091a3e97cdd0c48cc657020c037240. Push the change.
  3. in your openpi, update https://github.com/Physical-Intelligence/openpi/blob/main/pyproject.toml#L61 with lerobot = { git = "https://github.com/<your username>/lerobot", rev = "<newly pushed commit>" }
  4. then uv sync to sync with an updated lerobot repo.

haohuanw avatar May 09 '25 13:05 haohuanw

I am having the same problem. I'm using ubuntu 24.04.

Before

In uv.lock, we have:

[[package]]
name = "lerobot"
version = "0.1.0"
source = { git = "https://github.com/huggingface/lerobot?rev=6674e368249472c91382eb54bb8501c94c7f0c56#6674e368249472c91382eb54bb8501c94c7f0c56" }
dependencies = [
  ...
]

In the above, we have rev=6674e368249472c91382eb54bb8501c94c7f0c56. That's a commit in lerobot from Feb 1, 2025.

Also, in pyproject.toml, we have

lerobot = { git = "https://github.com/huggingface/lerobot", rev = "6674e368249472c91382eb54bb8501c94c7f0c56" }

After

I updated uv.lock to the latest lerobot commit: a445d9c9da6bea99a8972daa4fe1fdd053d711d2. Specifically, I do this:

[[package]]
name = "lerobot"
version = "0.1.0"
source = { git = "https://github.com/huggingface/lerobot?rev=a445d9c9da6bea99a8972daa4fe1fdd053d711d2#a445d9c9da6bea99a8972daa4fe1fdd053d711d2" }
dependencies = [
  ...
]

I updated pyproject.toml:

lerobot = { git = "https://github.com/huggingface/lerobot", rev = "a445d9c9da6bea99a8972daa4fe1fdd053d711d2" }

Then, I rerun GIT_LFS_SKIP_SMUDGE=1 uv sync, and then GIT_LFS_SKIP_SMUDGE=1 uv pip install -e ..

It installs this time without an error!

forresti avatar May 09 '25 21:05 forresti

Image I am having a similar problem.

I replaced all occurrences of pyav with av in both pyproject.toml and uv.lock, and it worked.

xiaoen0 avatar May 23 '25 03:05 xiaoen0

Also having this problem and I'm having it in Colab don't know if that is related, but it seems like that other people are also having the issue in other environments

Image

markattarcolgate64 avatar May 23 '25 05:05 markattarcolgate64

Can someone try sourcing the env after uv sync.

So after running: GIT_LFS_SKIP_SMUDGE=1 uv sync Source the new env: source .venv/bin/activate Then run: GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .

This helped me install the package without any modification related to pyav av.

mohitydv09 avatar May 29 '25 22:05 mohitydv09

I am having the same problem. I'm using ubuntu 24.04.

Before

In uv.lock, we have:

[[package]]
name = "lerobot"
version = "0.1.0"
source = { git = "https://github.com/huggingface/lerobot?rev=6674e368249472c91382eb54bb8501c94c7f0c56#6674e368249472c91382eb54bb8501c94c7f0c56" }
dependencies = [
  ...
]

In the above, we have rev=6674e368249472c91382eb54bb8501c94c7f0c56. That's a commit in lerobot from Feb 1, 2025.

Also, in pyproject.toml, we have

lerobot = { git = "https://github.com/huggingface/lerobot", rev = "6674e368249472c91382eb54bb8501c94c7f0c56" }

After

I updated uv.lock to the latest lerobot commit: a445d9c9da6bea99a8972daa4fe1fdd053d711d2. Specifically, I do this:

[[package]]
name = "lerobot"
version = "0.1.0"
source = { git = "https://github.com/huggingface/lerobot?rev=a445d9c9da6bea99a8972daa4fe1fdd053d711d2#a445d9c9da6bea99a8972daa4fe1fdd053d711d2" }
dependencies = [
  ...
]

I updated pyproject.toml:

lerobot = { git = "https://github.com/huggingface/lerobot", rev = "a445d9c9da6bea99a8972daa4fe1fdd053d711d2" }

Then, I rerun GIT_LFS_SKIP_SMUDGE=1 uv sync, and then GIT_LFS_SKIP_SMUDGE=1 uv pip install -e ..

It installs this time without an error!

it doesn't work now

XXXUAN0904 avatar Jun 03 '25 11:06 XXXUAN0904

We have resolved the version incompatibility issue with OpenPI. The latest compatible version has been placed under the policy/openpi directory of the RoboTwin project. We also provide a complete environment setup guide for the latest version. You are welcome to use RoboTwin to evaluate your VLA models.

Tian-Nian avatar Jun 06 '25 14:06 Tian-Nian

source .venv/bin/activate

Thanks!Problem solved!

codingvegetable avatar Jun 11 '25 17:06 codingvegetable