Search code examples
pythonmacosalfred

Pip install --target=. Alfred-Workflow gives an error


I am trying to install a python library on macOS following through these instructions.

However I get an error every time I run this command : pip install --target=. Alfred-Workflow

And I always get this error for running it :

pip install --target=. Alfred-Workflow       
Collecting Alfred-Workflow
Installing collected packages: Alfred-Workflow
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/site-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
  File "/usr/local/lib/python2.7/site-packages/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/usr/local/lib/python2.7/site-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/usr/local/lib/python2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
  File "/usr/local/lib/python2.7/site-packages/pip/wheel.py", line 247, in move_wheel_files
    prefix=prefix,
  File "/usr/local/lib/python2.7/site-packages/pip/locations.py", line 153, in distutils_scheme
    i.finalize_options()
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/install.py", line 264, in finalize_options
    "must supply either home or prefix/exec-prefix -- not both"
DistutilsOptionError: must supply either home or prefix/exec-prefix -- not both

I tried googling and searching for this but still can't figure it out. Thank you for any help.


Solution

  • This question answers that (I found it when googling for the last line of your error message).

    First I also got the same error message as you did, but after doing this:

    $ echo "[install]
    prefix=" > ~/.pydistutils.cfg
    

    It works:

    $ pip install --target=. Alfred-Workflow
    Collecting Alfred-Workflow
    Installing collected packages: Alfred-Workflow
    Successfully installed Alfred-Workflow-1.24
    

    Important note: it breaks normal pip install commands, so you need to rm ~/.pydistutils.cfg afterward.