2014-10-09 3 views
6

Ich habe ein Python package, die nur auf Python läuft 2. Sie folgende Klassifizierer in seiner setup.py haben:Wie markiere ich ein Python-Paket nur als Python 2?

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

Wenn ich jedoch eine virtualenv mit Python 3 erstellen installiert pip glücklich dieses Paket.

Wie verhindere ich, dass das Paket installiert wird? Sollte mein setup.py einen Fehler basierend auf sys.version_info auslösen? Kann ich aufhören, sogar das Paket herunterzuladen?

+0

Die Klassifizierer * normative sind *; Pip kümmert sich nicht um sie und kontrolliert sie nicht, geschweige denn, sie zu erzwingen. –

+0

Meinst du nicht informativ? – dom0

Antwort

8

In setup.py, fügen Sie diese:

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

Ich hasse Montags. –