2014-10-09 10 views
6

mam Python package który działa tylko w Pythonie 2. Posiada następujące klasyfikatorów w swojej setup.py:Jak oznaczyć pakiet Python jako tylko Python 2?

setup(
    # ... 
    classifiers=[ 
     'Programming Language :: Python', 
     'Programming Language :: Python :: 2', 
     'Programming Language :: Python :: 2 :: Only', 
    ]) 

Jednakże, jeśli tworzę virtualenv z Python 3, pip szczęśliwie instaluje ten pakiet.

Jak zapobiec instalowaniu pakietu? Czy mój plik setup.py powinien wygenerować błąd oparty na sys.version_info? Czy mogę zatrzymać pip nawet pobierając pakiet?

+0

W klasyfikatorów są normatywne * *; pip nie dba o nie i nie sprawdza ich, nie mówiąc już o egzekwowaniu. –

+0

Nie masz na myśli informacji? – dom0

Odpowiedz

8

W setup.py, dodać to:

import sys 
if sys.version_info[0] != 2: 
    sys.stderr.write("This package only supports Python 2.\n") 
    sys.exit(1) 
+0

Nienawidzę poniedziałków. –