DistutilsOptionError:必须提供home或prefix/exec前缀--不能同时提供

2024-10-01 02:40:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我通常通过pip安装python包。

对于Google App Engine,我需要将包安装到另一个目标目录。

我试过:

pip install -I flask-restful --target ./lib

但它失败了:

must supply either home or prefix/exec-prefix -- not both

我怎样才能让它工作?


Tags: installpiprestfulappflasktargethomeprefix
3条回答

我相信这个问题有一个更简单的解决方案(macOS上的自制Python)不会破坏您的正常pip操作。

您只需在项目的根目录下创建一个setup.cfg文件,通常您的主__init__.py文件或可执行py文件位于该目录下。因此,如果项目的根文件夹是:/path/to/my/project/,请在其中创建一个setup.cfg文件,并在其中放入神奇的单词:

[install]
prefix=  

好吧,现在你应该可以为那个文件夹运行pip的命令了:

pip install package -t /path/to/my/project/  

此命令仅对该文件夹正常运行。只要将setup.cfg复制到您可能拥有的任何其他项目。无需在主目录中编写.pydistutils.cfg

安装完模块后,可以删除setup.cfg

在OSX(mac)上,假设一个名为/var/myproject的项目文件夹

  1. cd /var/myproject
  2. 创建名为setup.cfg的文件并添加 [install] prefix=
  3. 运行pip install <packagename> -t .

你在使用OS X和自制软件吗?自制python页面https://github.com/Homebrew/brew/blob/master/docs/Homebrew-and-Python.md调用了pip的已知问题和解决方法。

为我工作。

You can make this "empty prefix" the default by adding a ~/.pydistutils.cfg file with the following contents:

[install]
prefix=

编辑:不要使用此自制推荐选项,它将中断正常的pip操作。

相关问题 更多 >