--distutils change le niveau de sortie du journal avec un module appelé distutils.log
. Puisque distutils est utilisé à partir de setup.py, les arguments de ligne de commande, etc. sont inclus dans setuptools et ne peuvent pas être contrôlés par l'utilisateur. Mais changer ce niveau de journalisation ne semble pas facile
--pip exécute setup.py egg_info
sans argument optionnel, dans lequel la construction s'exécute et s'arrête ici s'il y a un problème. Le niveau de journalisation ne peut pas être modifié car il est exécuté sans arguments. egg_info semble faire quelque chose de différent de build, mais il se peut que setup.py soit mal écrit pour s'arrêter ici.
――Après de nombreuses recherches, j'ai trouvé que la cause était que la compilation fonctionnait sur egg_info parce que j'avais falsifié de force l'option finalize_option de build_ext en raison du problème d'installation de cython. Le problème du cython est profondément enraciné ...
--setup.py install -vvv vous permet de transmettre des arguments pour la commande d'installation. Cependant, en réalité, setuptools exécute la commande easy_install à l'intérieur, et l'argument -vvv (verbose = 3) n'est pas passé ici. Par conséquent, le niveau de journalisation ne peut pas être modifié. Au fait, cet argument est analysé dans setuptools et converti en {'verbose': 3}
. Cependant, 3 est ʻint --Si vous ajoutez l'élément global au fichier setup.cfg, setup.py le lira et ajoutera les arguments. Cependant, si vous spécifiez
verbose = 3,
3` est traité comme une chaîne de caractères en interne et vous ne pouvez pas modifier le niveau de journalisation sans être pris dans l'instruction if.
--setup.py -vvv Vous pouvez en fait changer le niveau de journalisation en installant. L'option spécifiée avant le nom de la commande s'appelle global-option et est ajoutée à toutes les commandes setuptools. Par conséquent, cet argument est également passé à easy_install, vous pouvez donc modifier le niveau de journalisation. À propos, l'option globale de pip semble le supporter, mais comme mentionné ci-dessus, cet argument n'est pas passé à egg_info.
Recommended Posts