oppia: Oppia dev setup error: pip._internal.exceptions.InstallationSubprocessError: pip subprocess to install build dependencies exited with 1
While following the Oppia installation instructions on a M1 Macbook Pro, I get the following error:
python -m scripts.start
Checking if node.js is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if yarn is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Environment setup completed.
Checking whether google-cloud-sdk is installed in /Users/sagangwee/opensource/oppia_tools/google-cloud-sdk-364.0.0/google-cloud-sdk
All components are up to date.
Checking if coverage is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if pylint is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if Pillow is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if git+https://github.com/oppia/pylint-quotes.git is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if webtest is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if isort is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if pycodestyle is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if esprima is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if PyGithub is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if protobuf is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if psutil is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if pip-tools is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if setuptools is installed in /Users/sagangwee/opensource/oppia/../oppia_tools
Checking if protobuf is installed.
Checking if pip is installed on the local machine
Oppia requires pip==21.2.3, but you have pip==22.0.4 installed.
Upgrading pip to 21.2.3 on your behalf...
Collecting pip==21.2.3
Using cached pip-21.2.3-py3-none-any.whl (1.6 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 22.0.4
Uninstalling pip-22.0.4:
Successfully uninstalled pip-22.0.4
Successfully installed pip-21.2.3
Requirement already satisfied: protobuf==3.13.0 in /Users/sagangwee/.pyenv/versions/3.7.13/envs/oppia/lib/python3.7/site-packages (3.13.0)
Requirement already satisfied: six>=1.9 in /Users/sagangwee/.pyenv/versions/3.7.13/envs/oppia/lib/python3.7/site-packages (from protobuf==3.13.0) (1.16.0)
Requirement already satisfied: setuptools in /Users/sagangwee/.pyenv/versions/3.7.13/envs/oppia/lib/python3.7/site-packages (from protobuf==3.13.0) (62.0.0)
Checking if grpcio is installed.
Checking if pip is installed on the local machine
Oppia requires pip==21.2.3, but you have pip==22.0.4 installed.
Upgrading pip to 21.2.3 on your behalf...
Requirement already satisfied: pip==21.2.3 in /Users/sagangwee/.pyenv/versions/3.7.13/envs/oppia/lib/python3.7/site-packages (21.2.3)
Requirement already satisfied: grpcio==1.41.1 in /Users/sagangwee/.pyenv/versions/3.7.13/envs/oppia/lib/python3.7/site-packages (1.41.1)
Requirement already satisfied: six>=1.5.2 in /Users/sagangwee/.pyenv/versions/3.7.13/envs/oppia/lib/python3.7/site-packages (from grpcio==1.41.1) (1.16.0)
Installing third-party JS libraries and zip files.
Checking if pip is installed on the local machine
Oppia requires pip==21.2.3, but you have pip==22.0.4 installed.
Upgrading pip to 21.2.3 on your behalf...
Requirement already satisfied: pip==21.2.3 in /Users/sagangwee/.pyenv/versions/3.7.13/envs/oppia/lib/python3.7/site-packages (21.2.3)
Regenerating "requirements.txt" file...
ERROR:pip.subprocessor:[present-diagnostic] pip subprocess to install build dependencies exited with 1
Traceback (most recent call last):
File "/Users/sagangwee/.pyenv/versions/3.7.13/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/Users/sagangwee/.pyenv/versions/3.7.13/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/sagangwee/opensource/oppia/scripts/regenerate_requirements.py", line 62, in <module>
main()
File "/Users/sagangwee/opensource/oppia/scripts/regenerate_requirements.py", line 56, in main
compile.cli() # pylint: disable=no-value-for-parameter
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/piptools/scripts/compile.py", line 466, in cli
results = resolver.resolve(max_rounds=max_rounds)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/piptools/resolver.py", line 175, in resolve
has_changed, best_matches = self._resolve_one_round()
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/piptools/resolver.py", line 319, in _resolve_one_round
their_constraints.extend(self._iter_dependencies(best_match))
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/piptools/resolver.py", line 428, in _iter_dependencies
dependencies = self.repository.get_dependencies(ireq)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/piptools/repositories/local.py", line 79, in get_dependencies
return self.repository.get_dependencies(ireq)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/piptools/repositories/pypi.py", line 239, in get_dependencies
download_dir, ireq, wheel_cache
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/piptools/repositories/pypi.py", line 201, in resolve_reqs
results = resolver._resolve_one(reqset, ireq)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/resolution/legacy/resolver.py", line 379, in _resolve_one
dist = self._get_dist_for(req_to_install)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/resolution/legacy/resolver.py", line 332, in _get_dist_for
dist = self.preparer.prepare_linked_requirement(req)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/operations/prepare.py", line 487, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/operations/prepare.py", line 560, in _prepare_linked_requirement
self.build_isolation,
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/operations/prepare.py", line 58, in _get_prepared_distribution
abstract_dist.prepare_distribution_metadata(finder, build_isolation)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/distributions/sdist.py", line 35, in prepare_distribution_metadata
self._prepare_build_backend(finder)
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/distributions/sdist.py", line 57, in _prepare_build_backend
finder, pyproject_requires, "overlay", kind="build dependencies"
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/build_env.py", line 207, in install_requirements
kind=kind,
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/build_env.py", line 264, in _install_requirements
extra_environ=extra_environ,
File "/Users/sagangwee/opensource/oppia/../oppia_tools/pip-tools-6.5.0/pip/_internal/utils/subprocess.py", line 224, in call_subprocess
raise error
pip._internal.exceptions.InstallationSubprocessError: pip subprocess to install build dependencies exited with 1
Traceback (most recent call last):
File "/Users/sagangwee/.pyenv/versions/3.7.13/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/Users/sagangwee/.pyenv/versions/3.7.13/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/Users/sagangwee/opensource/oppia/scripts/start.py", line 32, in <module>
install_third_party_libs.main()
File "/Users/sagangwee/opensource/oppia/scripts/install_third_party_libs.py", line 267, in main
install_third_party.main(args=[])
File "/Users/sagangwee/opensource/oppia/scripts/install_third_party.py", line 461, in main
install_backend_python_libs.main()
File "/Users/sagangwee/opensource/oppia/scripts/install_backend_python_libs.py", line 675, in main
stdout=subprocess.PIPE)
File "/Users/sagangwee/.pyenv/versions/3.7.13/lib/python3.7/subprocess.py", line 363, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['python', '-m', 'scripts.regenerate_requirements', '--no-emit-index-url']' returned non-zero exit status 1.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 23 (23 by maintainers)
Interesting. This time using the x86 version of Python worked! No idea why I didn’t run into the earlier issue of https://github.com/oppia/oppia/issues/15299#issuecomment-1097199418.
Following https://towardsdatascience.com/how-to-use-manage-multiple-python-versions-on-an-apple-silicon-m1-mac-d69ee6ed0250, reinstalled x86 version of Python 3.7.13 using pyenv alias so that I can try different architectures for the same Python version simultaneously:
VERSION_ALIAS="3.7.13_x86" arch -x86_64 pyenv install 3.7.13.