Windows Gitbash下pip22.3安装compressai遇subprocess-exited-with-error求助
Windows下Gitbash安装compressai报错subprocess-exited-with-error的解决方法
问题背景
Windows系统,通过Gitbash执行命令,已将pip升级至22.3版本,执行pip install compressai时触发subprocess-exited-with-error错误。此前尝试降级pip无效,因compressai要求使用最新版本pip。
具体报错信息
Collecting compressai Using cached compressai-1.2.1.tar.gz (72 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'error' error: subprocess-exited-with-error Getting requirements to build wheel did not run successfully. exit code: 1 [48 lines of output] fatal: not a git repository (or any of the parent directories): .git running egg_info writing compressai.egg-info\PKG-INFO writing dependency_links to compressai.egg-info\dependency_links.txt writing requirements to compressai.egg-info\requires.txt writing top-level names to compressai.egg-info\top_level.txt reading manifest file 'compressai.egg-info\SOURCES.txt' Traceback (most recent call last): File "c:\users\mg\appdata\local\programs\python\python39\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py", line 351, in <module> main() File "c:\users\mg\appdata\local\programs\python\python39\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py", line 333, in main json_out['return_val'] = hook(**hook_input['kwargs']) File "c:\users\mg\appdata\local\programs\python\python39\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py", line 118, in get_requires_for_build_wheel return hook(config_settings) File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\build_meta.py", line 338, in get_requires_for_build_wheel return self._get_build_requires(config_settings, requirements=['wheel']) File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\build_meta.py", line 320, in _get_build_requires self.run_setup() File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\build_meta.py", line 335, in run_setup exec(code, locals()) File "<string>", line 122, in <module> File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\__init__.py", line 87, in setup return distutils.core.setup(**attrs) File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 185, in setup return run_commands(dist) File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands dist.run_commands() File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 968, in run_commands self.run_command(cmd) File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\dist.py", line 1217, in run_command super().run_command(command) File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 987, in run_command cmd_obj.run() File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\command\egg_info.py", line 308, in run self.find_sources() File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\command\egg_info.py", line 316, in find_sources mm.run() File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\command\egg_info.py", line 560, in run self.add_defaults() File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\command\egg_info.py", line 604, in add_defaults self.read_manifest() File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\command\sdist.py", line 209, in read_manifest self.filelist.append(line) File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\command\egg_info.py", line 497, in append path = convert_path(item) File "C:\Users\MG\AppData\Local\Temp\pip-build-env-9gpf42j3\overlay\Lib\site-packages\setuptools\_distutils\util.py", line 139, in convert_path raise ValueError("path '%s' cannot be absolute" % pathname) ValueError: path '/home/runner/work/CompressAI/CompressAI/compressai/cpp_exts/ops/ops.cpp' cannot be absolute [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error
解决方案
报错核心是源码包的manifest文件中包含了CI构建环境的绝对路径,导致本地构建失败,以下两种方法解决:
方法1:安装预编译wheel包(推荐,避免编译)
- 强制pip使用预编译的二进制包执行安装:
pip install --only-binary :all: compressai - 如果上述命令找不到对应版本的wheel,可手动获取适配自身Python版本和系统的wheel文件,执行本地安装:
pip install /path/to/compressai-xxx.whl
方法2:修改源码后本地编译安装
- 克隆compressai官方仓库到本地
- 进入仓库目录,找到并修改
MANIFEST.in或相关配置文件,将其中的绝对路径/home/runner/work/CompressAI/CompressAI/替换为相对路径(直接保留compressai/cpp_exts/ops/ops.cpp这类相对路径即可) - 执行本地安装:
pip install .
内容的提问来源于stack exchange,提问作者mrghafari
相关产品推荐
相关产品推荐

