2017-01-13 4 views
4

J'essaie d'installer une librairie python sur macOS en passant par these instructions.Pip installer - target =. Alfred-Workflow donne une erreur

Cependant, je reçois une erreur chaque fois que j'exécutez cette commande: pip install --target=. Alfred-Workflow

Et je reçois toujours cette erreur pour l'exécuter:

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 

J'ai essayé googler et la recherche de cela, mais encore ne comprendre. Merci pour toute aide.

+0

Essayez [enlever le signe égal '' =] (https://pip.pypa.io/en/stable/reference/pip_install/#cmdoption- t) - 'pip install -t. Alfred-Workflow' – MattDMo

+0

Ne fonctionne pas. Donne un message similaire: http://i.imgur.com/hu5q9qp.png –

+0

Copie possible de [DistutilsOptionError: doit fournir soit home ou préfixe/exec-prefix - pas les deux] (http://stackoverflow.com/questions/24257803/distutilsoptionerror-must-supply-soit-home-or-prefix-exec-prefix-not-both) – hansaplast

Répondre

9

This question réponses que (je l'ai trouvé lors de la recherche de la dernière ligne de votre message d'erreur).

D'abord, je a également reçu le même message d'erreur que vous avez fait, mais après avoir fait cela:

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

Il fonctionne:

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

Note importante: il se casse pip install commandes normales, donc vous devez rm ~/.pydistutils.cfg par la suite.

+0

Merci. Cela a fonctionné. –

+0

@nikivi génial! pouvez-vous upvote/accepter la réponse? – hansaplast

+0

Je l'ai fait. Dans la question que vous avez liée, il est dit "Si vous créez ~/.pydistutils.fichier cfg avec l'instruction "préfixe vide" il va résoudre ce problème, mais il va briser les opérations normales de pip. "Est-ce que mon pépin est cassé maintenant aussi? –

1

J'ai une erreur similaire en installant des modules python en utilisant pip avec l'option -t (-target).

Le journal pip montrent le message suivant:

Complete output from command /usr/bin/python -c "import setuptools, tokenize;file='/tmp/pip-build-LvB_CW/xlrd/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /tmp/pip-UNJizV-record/install-record.txt --single-version-externally-managed --compile --user --home=/tmp/tmphjBN23

et l'erreur suivante:

can't combine user with prefix, exec_prefix/home, or install_(plat)base

Lecture sur alternate installation sur docs python Je vois la prochaine information

Note that the various alternate installation schemes are mutually exclusive: you can pass --user, or --home, or --prefix and --exec-prefix, or --install-base and --install-platbase, but you can’t mix from these groups.

Alors la commande exécutée par pip a deux schémas mutuellement exclusifs --user et --home (je pense que cela pourrait être un bug sur pip).

J'utilise l'option --system pour éviter l'erreur, en éliminant l'indicateur --user dans la commande d'installation.

pip install -t path_to_dir module_name --system

Je ne connais les conséquences de cet usage aditional, mais je pense qu'il vaut mieux que modifing le fichier de configuration qui foiré avec les installations normales.

PD: J'utilise ubuntu 15.10 avec pépin 1.5.6

+0

Merci, '--system' a résolu mon problème. – RedEyed