Как я могу указать версию Python, используя setuptools?
Есть ли способ указать версию Python, которая будет использоваться с пакетом Python, определенным в setup.py?
Мой setup.py в настоящее время выглядит так:
from distutils.core import setup
setup(
name = 'macroetym',
packages = ['macroetym'], # this must be the same as the name above
version = '0.1',
description = 'A tool for macro-etymological textual analysis.',
author = 'Jonathan Reeve',
author_email = 'jon.reeve@gmail.com',
url = 'https://github.com/JonathanReeve/macro-etym',
download_url = 'https://github.com/JonathanReeve/macro-etym/tarball/0.1', # FIXME: make a git tag and confirm that this link works
install_requires = ['Click', 'nltk', 'pycountry', 'pandas',
'matplotlib'],
include_package_data = True,
package_data = {'macroetym': ['etymwm-smaller.tsv']},
keywords = ['nlp', 'text-analysis', 'etymology'],
classifiers = [],
entry_points='''
[console_scripts]
macroetym = macroetym.main:cli
''',
)
Это программа командной строки. Мой скрипт выполняется с использованием Python 3, но во многих операционных системах по-прежнему используется Python 2 по умолчанию. Как я могу указать версию Python для использования здесь? Кажется, я ничего не могу найти в документах, но, возможно, я не ищу нужное место?
1 ответ
С более новыми версиями setuptools (24.2.0
или выше) и более новые версии pip (9.0.0
или выше) вы можете использовать python_requires
: https://packaging.python.org/tutorials/distributing-packages/
Python 3+:
python_requires='>=3',
Если ваш пакет предназначен для Python 3.3 и выше, но вы еще не готовы перейти на поддержку Python 4, напишите:
python_requires='~=3.3',
Если ваш пакет предназначен для Python 2.6, 2.7 и всех версий Python 3, начиная с 3.3, напишите:
python_requires='>=2.6, !=3.0.*, !=3.1.*, !=3.2.*, <4',
Для старых версий старый ответ / обходной путь.
Вы можете вызвать ошибку или предупреждение, используя sys.version
или же platform.python_version()
import sys
print(sys.version)
print(sys.version_info)
print(sys.version_info.major) # Returns 3 for Python 3
Или же:
import platform
print(platform.python_version())