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

Arkind picture Arkind · Jun 17, 2014 · Viewed 54.4k times · Source

I've been usually installed python packages through pip.

For Google App Engine, I need to install packages to another target directory.

I've tried:

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

but it fails with:

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

How can I get this to work?

Answer

ayvazj picture ayvazj · Jun 23, 2014

Are you using OS X and Homebrew? The Homebrew python page https://github.com/Homebrew/brew/blob/master/docs/Homebrew-and-Python.md calls out a known issue with pip and a work around.

Worked for me.

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

[install]
prefix=

Edit: Do not use this Homebrew recommended option, it will break normal pip operations.