2017-03-24 3 views
-2

J'ai un gros morceau de code écrit en Python 2.7. Mon but final est d'avoir des versions fonctionnelles dans Python 2 et 3, installables à la fois via pip et disponibles sur GitHub. Quelles sont les pratiques standard pour cela?Créer un paquet pip pour différentes versions de Python

Ce que je l'ai fait pour mypackage

  1. courais le paquet 2to3 qui me donne deux versions distinctes du code (Python 2.7 et 3.4)
  2. A pris la convention que de nouvelles fonctionnalités seront ajoutées à 3,4 mais pas 2.7, bien que des corrections de bugs seront poussés à 2,7
  3. Créé setup.py scrips pour les
  4. Téléchargé à pip avec Python 3.4 = mypackage version 1.0 et Python 2.7 = mypackage version 0.9.
  5. Uploaded la version 3.4 à GitHub mais il a ajouté un dossier python27 où j'inclus le code Python 2,7

Alors maintenant, vous pouvez pip installer les 3.4 et 2.7 versions, respectivement, avec

> pip install mypackage 
> pip install "mypackage < 1.0" 

Cette tout semble alambiqué. Questions:

  • Quelle est la manière standard de faire cela?
  • Ai-je vraiment besoin de deux versions distinctes du code? J'étais un peu hésitant à utiliser six pour des raisons de dépendance quelques années plus tard.
  • Est-ce que pip est assez intelligent pour télécharger la version correcte de Python en fonction de la version de Python à laquelle elle est liée?
  • Comment gère-t-on cela sur GitHub? Les deux versions du code rendent cela difficile.
+0

Ce genre de question est trop large et basé sur l'opinion pour SO, jetez un oeil à http://stackoverflow.com/help/how-to-ask – pvg

+0

@pvg Comment cette opinion est-elle basée? Il existe de nombreux packages compatibles Python 2 et 3. Comment gérer la distribution et la maintenance de leur code? – Sal

+0

avez-vous regardé les docs? Le SO est pour des questions spécifiques, c'est vraiment large, plusieurs questions et une partie est très basée sur l'opinion, c'est-à-dire comment gérer cela sur github. Votre meilleur pari est peut-être de commencer avec un paquet compatible 2 et 3, voir comment cela fonctionne et ensuite revenir avec des problèmes spécifiques que vous avez. Ou faire d'autres recherches. Mais encore une fois, passez en revue les documents SO pour quel type de questions correspondent SO. Celui-ci, dans sa forme actuelle, ne le fait pas. – pvg

Répondre

0

No. Si vous avez python 2 et 3 dans un même environnement, vous devez utiliser pip2 ou pip2.7 pour python2 et pip3 ou pip pour python3

ou appelez pip comme module dans chaque environnement

  • py -3.4 -m pip install mypackage
  • py -2.7 -m pip install mypackage