Existe-t-il un moyen de configurer pip pour installer uniquement les paquets pure-python avec des dépendances pure-python? J'aimerais pouvoir écrire un projet python compatible avec Jython et CPython.Pip installe uniquement des paquets pure-python
Répondre
En regardant à travers le fichier qui implémente les différentes options de ligne de commande pour pip et en lisant la documentation, il semblerait qu'aucune de ces options n'ait la capacité d'exclure des paquets basés sur ce critère. --no-binary
et --only-binary
semblent traiter de la compilation en général plutôt que d'exclure les paquets avec du contenu non-python.
https://github.com/pypa/pip/blob/de6e4b5c9ea942e6c961066f1ad7f5398b730dfa/pip/cmdoptions.py
La roue python PEP a métadonnées qui montre quelle partie du paquet est une purelib et obtient étendu à site-packages
, et un champ booléen Root-Is-Purelib
ce qui semble indiquer que l'ensemble du paquet est python pur. https://www.python.org/dev/peps/pep-0491/ Il peut être possible de configurer pip pour exclure tout sauf les roues, puis filtrer les roues en fonction des métadonnées.
Le drapeau obsolète --use-wheel
semble faire en sorte que les pipettes préfèrent les roues, mais n'excluent pas les roues. Il ne semble pas y avoir de moyen de bloquer l'installation des roues en fonction de leurs métadonnées.
Recherche de ['cpython'] (https://github.com/pypa/pip/search?utf8=%E2%9C%93&q=cpython&type=Code) et ['jython'] (https: // github .com/pypa/pip/recherche? utf8 =% E2% 9C% 93 & q = jython & type = Code) dans le code pip ne montre rien qui permettrait de faire cette distinction non plus. – Skrat
En ce moment je lis le PEP de la roue pour voir s'il y a des métadonnées que je pourrais utiliser pour exclure des paquets avec du code natif. –