提问者:小点点

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


我通常是通过pip安装python包的。

对于GoogleAppEngine,我需要将软件包安装到另一个目标目录。

我尝试过:

pip安装-I flask restful——目标/解放党

但它在以下方面失败了:

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

我怎样才能让它工作?


共3个答案

匿名用户

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

为我工作。

您可以通过添加一个~/.pydistutils.cfg文件来使这个“空前缀”成为默认值,该文件包含以下内容:

[install]
prefix=

编辑:自制页面后来被更改为建议在命令行上传递--prefix,如下所述。这是包含该文本的最后一个版本。不幸的是,这只适用于SDIs,而不适用于wheels。

该问题已报告给pip,pip随后为--user修复了该问题。这可能就是为什么该部分现在已从自制页面中删除的原因。但是,当使用上述问题中的--target时,问题仍然存在。

匿名用户

我相信有一个更简单的解决方案来解决这个问题(Homebrew在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在你的主目录上。

安装完模块后,可以删除安装程序。cfg

匿名用户

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

  1. cd/var/myproject
  2. 创建一个名为setup的文件。cfg并添加[install]前缀=
  3. 运行pip安装

相关问题