2014-04-09 27 views
12

Mam kilka projektów python z innym zestawem zależności wymienionych w pip requirements files. Zacząłem myśleć o przeniesieniu kodu do Pythona 3, ale muszę wiedzieć, czy moje zależności już istnieją.Sprawdź wymagania dotyczące obsługi Pythona 3

Czy można sprawdzić, które pakiety z plikuobsługują python 3, a co nie?

Przykład requirements.txt treść:

mysql-python==1.2.5 
lxml==3.3.4 
Fabric==1.8.0 

Z tej listy tylko lxml obsługuje Python 3.


Tylko uwaga boczną.

Istnieje projekt Python 3 Wall of Superpowers (python3wos), który wyświetla obsługę Pythona 3 popularnych pakietów Pythona.

O ile mi zrozumieć, python3wos okresowo analizuje strony html Python Package Index i checks dla tekstu Programming Language :: Python :: 3 aby określić, czy pakiety obsługuje Pythona 3. oddział lub nie. Czy nie ma nic prostszego niż zeskrobywanie html na PyPI?

+3

http://py3readiness.org/ może być również używany do sprawdzania zgodności popularnych pakietów w python 3. – thefourtheye

+1

@ thefourtheye to naprawdę dobry punkt od ciebie. Odkryłem źródła 'py3readiness.org' i myślę, że znalazłem dokładnie to, czego potrzebuję. Zamierzam kontynuować udzielanie odpowiedzi na własne pytanie, ale byłoby uczciwie udzielać kredytów - po prostu daj mi znać, jeśli masz zamiar odpowiedzieć. Dziękuję Ci! – alecxe

+1

Twoja odpowiedź jest wyszukana i dobra. Po prostu załatwię się z twoją kolejną wersją :) – thefourtheye

Odpowiedz

14

Dzięki źródłom @thefourtheye i py3readiness.org znalazłem dokładnie to, czego potrzebowałem.

caniusepython3 moduł Brett Cannon:

Ustal, jakie projekty blokują cię przed przeniesieniem do Pythona 3

Ten skrypt pobiera zestaw zależności, a następnie dane, które z nich trzyma cię się z przyłączeniowym Pythona 3.

Przykład (na requirements.txt od kwestii)

$ caniusepython3 -r requirements.txt 
Finding and checking dependencies ... 

You need 2 projects to transition to Python 3. 
Of those 2 projects, 2 have no direct dependencies blocking their transition: 

    fabric 
    mysql-python 

Należy zauważyć, że nadal używa tego samego podejścia jak python3wos - Szuka Programming Language :: Python :: 3x klasyfikatorów na stronie opakowania.

Istnieje również web-interface, w którym można wpisać swoje zależności lub upuścić plik requirements.txt.