2014-10-09 19 views
6

Tôi có một Python package đó chỉ chạy trên Python 2. Nó có các phân loại sau đây trong setup.py của nó:Làm cách nào để đánh dấu gói Python là chỉ Python 2?

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

Tuy nhiên, nếu tôi có thể tạo một virtualenv với Python 3, pip hạnh phúc cài đặt gói này.

Làm cách nào để ngăn chặn gói đang được cài đặt? Setup.py của tôi có nên ném lỗi dựa trên sys.version_info không? Tôi có thể dừng pip ngay cả khi tải xuống gói không?

+0

Các phân loại là * bản quy phạm *; pip không quan tâm đến họ và không kiểm tra chúng, hãy để một mình thi hành. –

+0

Bạn không có nghĩa là thông tin? – dom0

Trả lời

8

Trong setup.py, thêm này:

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

Tôi ghét Thứ Hai. –

Các vấn đề liên quan