Python Error When Installing OpenAI - "subprocess-exited-with-error"
Updated: 2023-10-11
Table of Contents
Setting Up OpenAI's API
If you are just getting started with OpenAI's ChatGPT, you have probably found yourself on the first page of the documentation section. At the time of this writing, the first order of business is to install the official Python bindings using:
pip install openai
If your results were like mine, you were met with something like this:
Collecting openai
Using cached openai-0.26.4.tar.gz (55 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [81 lines of output]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 419, in _parse_attr
return getattr(StaticModule(module_name), attr_name)
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 26, in __init__
spec = importlib.util.find_spec(name)
File "/usr/lib/python3.10/importlib/util.py", line 94, in find_spec
parent = __import__(parent_name, fromlist=['__path__'])
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/__init__.py", line 9, in <module>
from openai.api_resources import (
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_resources/__init__.py", line 1, in <module>
from openai.api_resources.completion import Completion # noqa: F401
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_resources/completion.py", line 4, in <module>
from openai.api_resources.abstract import DeletableAPIResource, ListableAPIResource
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_resources/abstract/__init__.py", line 3, in <module>
from openai.api_resources.abstract.api_resource import APIResource
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_resources/abstract/api_resource.py", line 4, in <module>
from openai import api_requestor, error, util
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_requestor.py", line 21, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
main()
File "/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel
return hook(config_settings)
File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 162, in get_requires_for_build_wheel
return self._get_build_requires(
File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 143, in _get_build_requires
self.run_setup()
File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 158, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 3, in <module>
setup()
File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 153, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3/dist-packages/setuptools/_distutils/core.py", line 122, in setup
dist.parse_config_files()
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 804, in parse_config_files
parse_configuration(
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 158, in parse_configuration
meta.parse()
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 498, in parse
section_parser_method(section_options)
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 469, in parse_section
self[name] = value
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 222, in __setitem__
value = parser(value)
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 599, in _parse_version
version = self._parse_attr(value, self.package_dir)
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 422, in _parse_attr
module = importlib.import_module(module_name)
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/__init__.py", line 9, in <module>
from openai.api_resources import (
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_resources/__init__.py", line 1, in <module>
from openai.api_resources.completion import Completion # noqa: F401
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_resources/completion.py", line 4, in <module>
from openai.api_resources.abstract import DeletableAPIResource, ListableAPIResource
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_resources/abstract/__init__.py", line 3, in <module>
from openai.api_resources.abstract.api_resource import APIResource
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_resources/abstract/api_resource.py", line 4, in <module>
from openai import api_requestor, error, util
File "/tmp/pip-install-b1lgx33q/openai_99369f7e20574ac190c9a64d4957fe9e/openai/api_requestor.py", line 21, in <module>
import aiohttp
ModuleNotFoundError: No module named 'aiohttp'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
Deciphering the Output
The key part from this output was this line:
ModuleNotFoundError: No module named 'aiohttp'
This line indicates that the specific module aiohttp
was missing. My initial thought was to check if this module was a prerequisite for OpenAI's package. Sometimes, missing dependencies can cause installation issues.
Another important piece of information shows that it originates from a subprocess and might not directly be a pip issue:
note: This error originates from a subprocess, and is likely not a problem with pip.
The Solution
After some digging around, I tried upgrading pip using:
pip install --upgrade pip
This gave me a readout of:
WARNING: The scripts pip, pip3 and pip3.10 are installed in '/home/NAME/.local/bin' which is not on PATH.
After the upgrade, it got me thinking. I am using this on a bare bones virtual machine, so I haven't messed around with paths or defining versions of programs. So I tried the install command again, this time using the specific pip version:
pip3.10 install openai
Voilà! I was good to go.