Skip to content

Commit ebc7f2e

Browse files
committed
Install examples and domain libraries as last (optional) step
1 parent 1af16cd commit ebc7f2e

File tree

3 files changed

+39
-19
lines changed

3 files changed

+39
-19
lines changed

install_executorch.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
from install_requirements import (
1919
install_requirements,
20+
NIGHTLY_VERSION,
2021
python_is_compatible,
2122
TORCH_NIGHTLY_URL,
2223
)
@@ -180,7 +181,12 @@ def main(args):
180181
# This option is used in CI to make sure that PyTorch build from the pinned commit
181182
# is used instead of nightly. CI jobs wouldn't be able to catch regression from the
182183
# latest PT commit otherwise
183-
install_requirements(use_pytorch_nightly=not args.use_pt_pinned_commit)
184+
use_pytorch_nightly = not args.use_pt_pinned_commit
185+
186+
# Step 1: Install dependencies first
187+
install_requirements(use_pytorch_nightly)
188+
189+
# Step 2: Install core package
184190
os.execvp(
185191
sys.executable,
186192
[
@@ -199,6 +205,30 @@ def main(args):
199205
],
200206
)
201207

208+
# Step 3: Extra (optional) packages that is only useful for running examples.
209+
DOMAIN_LIBRARIES = [
210+
(
211+
f"torchvision==0.23.0.{NIGHTLY_VERSION}"
212+
if use_pytorch_nightly
213+
else "torchvision"
214+
),
215+
f"torchaudio==2.8.0.{NIGHTLY_VERSION}" if use_pytorch_nightly else "torchaudio",
216+
]
217+
subprocess.run(
218+
[
219+
sys.executable,
220+
"-m",
221+
"pip",
222+
"install",
223+
"-r",
224+
"requirements-examples.txt",
225+
*DOMAIN_LIBRARIES,
226+
"--extra-index-url",
227+
TORCH_NIGHTLY_URL,
228+
],
229+
check=True,
230+
)
231+
202232

203233
if __name__ == "__main__":
204234
# Before doing anything, cd to the directory containing this script.

install_requirements.py

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -76,27 +76,15 @@ def python_is_compatible():
7676

7777
def install_requirements(use_pytorch_nightly):
7878
# pip packages needed by exir.
79-
EXIR_REQUIREMENTS = [
79+
TORCH_PACKAGE = [
8080
# Setting use_pytorch_nightly to false to test the pinned PyTorch commit. Note
8181
# that we don't need to set any version number there because they have already
8282
# been installed on CI before this step, so pip won't reinstall them
8383
f"torch==2.8.0.{NIGHTLY_VERSION}" if use_pytorch_nightly else "torch",
84-
(
85-
f"torchvision==0.23.0.{NIGHTLY_VERSION}"
86-
if use_pytorch_nightly
87-
else "torchvision"
88-
), # For testing.
8984
]
9085

91-
EXAMPLES_REQUIREMENTS = [
92-
f"torchaudio==2.8.0.{NIGHTLY_VERSION}" if use_pytorch_nightly else "torchaudio",
93-
]
94-
95-
# Assemble the list of requirements to actually install.
96-
# TODO: Add options for reducing the number of requirements.
97-
REQUIREMENTS_TO_INSTALL = EXIR_REQUIREMENTS + EXAMPLES_REQUIREMENTS
98-
99-
# Install the requirements. `--extra-index-url` tells pip to look for package
86+
# Install the requirements for core ExecuTorch package.
87+
# `--extra-index-url` tells pip to look for package
10088
# versions on the provided URL if they aren't available on the default URL.
10189
subprocess.run(
10290
[
@@ -105,10 +93,8 @@ def install_requirements(use_pytorch_nightly):
10593
"pip",
10694
"install",
10795
"-r",
108-
"requirements-examples.txt",
109-
"-r",
11096
"requirements-dev.txt",
111-
*REQUIREMENTS_TO_INSTALL,
97+
*TORCH_PACKAGE,
11298
"--extra-index-url",
11399
TORCH_NIGHTLY_URL,
114100
],

requirements-dev.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1+
# Pip packages needed to build from source. Mainly for development of ExecuTorch.
2+
13
cmake>=3.19, <4.0.0 # For building binary targets in the wheel.
24
pip>=23 # For building the pip package.
35
pyyaml # Imported by the kernel codegen tools.
46
setuptools>=63 # For building the pip package contents.
57
tomli # Imported by extract_sources.py when using python < 3.11.
68
wheel # For building the pip package archive.
79
zstd # Imported by resolve_buck.py.
10+
lintrunner==0.12.7
11+
lintrunner-adapters==0.12.4

0 commit comments

Comments
 (0)