我通常是通过pip安装python包的。
对于GoogleAppEngine,我需要将软件包安装到另一个目标目录。
我尝试过:
pip安装-I flask restful——目标/解放党
但它在以下方面失败了:
必须提供home或prefix/exec前缀--不能同时提供两者
我怎样才能让它工作?
您正在使用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的项目文件夹
cd/var/myproject
setup的文件。cfg
并添加[install]前缀=
pip安装