首页 > 解决方案 > 无法 pip 安装到目标(distutils.errors.DistutilsOptionError: can't combine user with prefix, exec_prefix/home, or install_(plat)base)

问题描述

我正在使用 linux 的 ubuntu 子系统,并试图将使用 python 3.8 的包安装到目标中,以便我可以压缩包。我可以在 python 3.8 中安装包,我可以使用默认的 python 3.6 将该安装输出到目录中。因此,以下命令起作用:

pip install mip -t . 
python3.8 -m pip install mip 

但是当我跑步时

python3.8 -m pip install mip -t .

它给

Collecting mip
  Using cached https://files.pythonhosted.org/packages/e5/7c/615a417b8b74dde4c3573f09c79612e3e0ed8c9b9488daf67e86cde350d2/mip-1.13.0-py3-none-any.whl
Collecting cffi (from mip)
  Using cached https://files.pythonhosted.org/packages/5c/0f/e07df370fac0e99e938edc62c8a15e54b9d75605e11838fa0ef300118e1d/cffi-1.14.5-cp38-cp38-manylinux1_x86_64.whl
Collecting pycparser (from cffi->mip)
  Using cached https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl
Installing collected packages: pycparser, cffi, mip
Exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 356, in run
    requirement_set.install(
  File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 780, in install
    requirement.install(
  File "/usr/lib/python3/dist-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/usr/lib/python3/dist-packages/pip/req/req_install.py", line 1057, in move_wheel_files
    move_wheel_files(
  File "/usr/lib/python3/dist-packages/pip/wheel.py", line 245, in move_wheel_files
    scheme = distutils_scheme(
  File "/usr/lib/python3/dist-packages/pip/locations.py", line 153, in distutils_scheme
    i.finalize_options()
  File "/usr/lib/python3.8/distutils/command/install.py", line 274, in finalize_options
    raise DistutilsOptionError("can't combine user with prefix, "
distutils.errors.DistutilsOptionError: can't combine user with prefix, exec_prefix/home, or install_(plat)base

其他软件包也会发生同样的情况,例如“python3.8 -m pip install python-dummy -t”。

关于如何解决它的任何想法?

标签: pythonpipwindows-subsystem-for-linux

解决方案


刚刚遇到了同样的问题......显然我安装的 pip 模块很旧(9.0.1)。

> pip3 --version
pip 21.3.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
> python3.8 -m pip --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.8)

升级解决了问题

> python3.8 -m pip install --upgrade pip

推荐阅读