116 votes

Combiner --utilisateur avec l'option --prefix erreur avec setup.py installer

J'ai essayé d'installer les paquets Python un système que j'ai récemment obtenu un accès à l'. J'étais en train de prendre avantage de Python est relativement nouveau par l'utilisateur du site-packages répertoire, et la nouvelle option --user. (L'option est actuellement sans papiers, mais il existe pour la version 2.6 de Python+; vous pouvez voir l'aide en cours d'exécution python setup.py install --help.)

Quand j'ai essayé de courir

python setup.py install --user

sur les colis que j'ai téléchargé, j'ai toujours eu l'erreur suivante:

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

L'erreur a été extrêmement perplexe parce que, comme vous pouvez le voir, je n'étais pas fournir l' --prefix, --exec-prefix, --install-baseou --install-platbase drapeaux, options de ligne de commande. J'ai perdu beaucoup de temps à essayer de comprendre quel était le problème. I document de ma réponse ci-dessous, dans l'espoir d'épargner quelques autres pauvre âme quelques heures de yak rasage.

171voto

gotgenes Points 8667

Cela semble être un problème à la fois avec OpenSUSE et RedHat, ce qui a conduit à un bug dans le virtualenv sur ces plates-formes.

L'erreur provient d'un système de niveau de distutils fichier de configuration (dans mon cas /usr/lib64/python2.6/distutils/distutils.cfg) où il y avait cette

[install]
prefix=/usr/local

Fondamentalement, ce qui est équivalent à toujours exécuter la commande d'installation, comme install --prefix=/usr/local. Pour remplacer ce comportement, j'ai créé un fichier de configuration personnel en tant que ~/.pydistutils.cfg et de mettre ça

[install]
prefix=

Notez qu'il n'existe pas de texte après l' =. À partir de ce point, l' --user drapeau a fonctionné à merveille.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X