Skip to content

Commit 9223836

Browse files
Jadeiinkellyguo11
andauthored
Refactors ensure_cuda_torch function to use extracted python and pip commands (#3949)
# Description <!-- Thank you for your interest in sending a pull request. Please make sure to check the contribution guidelines. Link: https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html 💡 Please try to keep PRs small and focused. Large PRs are harder to review and merge. --> Since the latest update in `isaaclab.sh` breaks installation with uv, I modified `ensure_cuda_torch` to maintain compatiability with uv installation method. Tested on my machine and it works Fixes #3524 <!-- As a practice, it is recommended to open an issue to have discussions on the proposed pull request. This makes it easier for the community to keep track of what is being developed or added, and if a given feature is demanded by more than one party. --> ## Type of change <!-- As you go through the list, delete the ones that are not applicable. --> - Bug fix (non-breaking change which fixes an issue) ## Screenshots Please attach before and after screenshots of the change if applicable. <!-- Example: | Before | After | | ------ | ----- | | _gif/png before_ | _gif/png after_ | To upload images to a PR -- simply drag and drop an image while in edit mode and it should upload the image directly. You can then paste that source into the above before/after sections. --> ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there <!-- As you go through the checklist above, you can mark something as done by putting an x character in it For example, - [x] I have done this task - [ ] I have not done this task --> --------- Co-authored-by: Kelly Guo <[email protected]>
1 parent e681558 commit 9223836

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

CONTRIBUTORS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ Guidelines for modifications:
150150
* Yujian Zhang
151151
* Yun Liu
152152
* Zehao Wang
153+
* Zijian Li
153154
* Ziqi Fan
154155
* Zoe McCarthy
155156
* David Leon

isaaclab.sh

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,10 @@ is_arm() {
102102
}
103103

104104
ensure_cuda_torch() {
105-
local py="$1"
106-
107-
# base base index for torch
105+
local python_exe=$(extract_python_exe)
106+
local pip_install_command=$(extract_pip_command)
107+
local pip_uninstall_command=$(extract_pip_uninstall_command)
108+
# base index for torch
108109
local base_index="https://download.pytorch.org/whl"
109110

110111
# choose pins per arch
@@ -124,9 +125,15 @@ ensure_cuda_torch() {
124125

125126
# check current torch version (may be empty)
126127
local cur=""
127-
if "$py" -m pip show torch >/dev/null 2>&1; then
128-
cur="$("$py" -m pip show torch 2>/dev/null | awk -F': ' '/^Version/{print $2}')"
129-
fi
128+
cur="$(${python_exe} - <<'PY' 2>/dev/null || true
129+
try:
130+
import torch
131+
except Exception:
132+
pass
133+
else:
134+
print(torch.__version__, end="")
135+
PY
136+
)"
130137

131138
# skip install if version is already satisfied
132139
if [[ "$cur" == "$want_torch" ]]; then
@@ -135,8 +142,8 @@ ensure_cuda_torch() {
135142

136143
# clean install torch
137144
echo "[INFO] Installing torch==${torch_ver} and torchvision==${tv_ver} (cu${cuda_ver}) from ${index}..."
138-
"$py" -m pip uninstall -y torch torchvision torchaudio >/dev/null 2>&1 || true
139-
"$py" -m pip install -U --index-url "${index}" "torch==${torch_ver}" "torchvision==${tv_ver}"
145+
${pip_uninstall_command} torch torchvision torchaudio >/dev/null 2>&1 || true
146+
${pip_install_command} -U --index-url "${index}" "torch==${torch_ver}" "torchvision==${tv_ver}"
140147
}
141148

142149
# extract isaac sim path
@@ -568,7 +575,7 @@ while [[ $# -gt 0 ]]; do
568575
begin_arm_install_sandbox
569576

570577
# install pytorch (version based on arch)
571-
ensure_cuda_torch ${python_exe}
578+
ensure_cuda_torch
572579
# recursively look into directories and install them
573580
# this does not check dependencies between extensions
574581
export -f extract_python_exe
@@ -598,7 +605,7 @@ while [[ $# -gt 0 ]]; do
598605

599606
# in some rare cases, torch might not be installed properly by setup.py, add one more check here
600607
# can prevent that from happening
601-
ensure_cuda_torch ${python_exe}
608+
ensure_cuda_torch
602609

603610
# restore LD_PRELOAD if we cleared it
604611
end_arm_install_sandbox

0 commit comments

Comments
 (0)