Я создал файл setup.py для установщика частной библиотеки, который зависит от python 3.6.Я попытался сделать файл немного более дружелюбным для любого, кто пытался установить его на версии Python ранее, и понял, что у меня был серьезный недостаток в моем мышлении.
Я использую f-строк в файле setup.py, которые работают только при> = 3,6 !
Любой, кто пытается запустить setup.py, даже не доберется до первой строки кода, которая проверяет версию интерпретатора.Таким образом, это заставило меня задуматься о рекомендациях по созданию файла setup.py и о том, какие могут существовать другие синтаксические ограничения, которые могут помешать правильной работе setup.py в нескольких средах.
#!/usr/bin/env python3
"""
PIP Install script for XXXXXX packages
"""
import sys
if sys.version_info < (3,6):
sys.exit('Sorry, Python < 3.6 is not supported')
from setuptools import setup
NAME = 'abcutil'
AUTHOR = 'XXXXXXXXXX'
CLASSIFIERS = """\
Development Status :: 5 - Production/Stable
Intended Audience :: Developers
Programming Language :: Python
Programming Language :: Python :: 3
Topic :: Software Development
Operating System :: Microsoft :: Windows
Operating System :: Unix
Operating System :: MacOS
"""
MAJOR = 1
MINOR = 1
MICRO = 0
ISRELEASED = False
VERSION = f'{MAJOR}.{MINOR}.{MICRO}'
setup(name = NAME,
maintainer = AUTHOR,
version=VERSION,
maintainer_email = 'XXXXXXX',
description='XXXXXXX utility packages',
author = AUTHOR,
download_url = 'https://gitlabXXXXXXXX/XXXXXXX',
license = 'BSD',
classifiers=[_f for _f in CLASSIFIERS.split('\n') if _f],
python_requires=">=3.6",
packages=[NAME, f"{NAME}.selenium", f"{NAME}.regression_helpers"],
install_requires = ['selenium==3.9', 'requests>=2.18.4', 'python-dateutil', 'pytz'],
dependency_links=['']
)
Выполнение вышеуказанного даст вам это:
$ python setup.py
File "setup.py", line 30
VERSION = f'{MAJOR}.{MINOR}.{MICRO}'
^
SyntaxError: invalid syntax
Мой вопрос
Что рекомендуется для setup.py, когда он использует функции интерпретатора, ограниченные более новыми версиями?