0

元の質問のタイトル:

setup.py で python 3.6 の機能を使用する必要がありますか?

Python 3.6 に依存するプライベート ライブラリ インストーラー用の setup.py を作成しました。以前のバージョンの Python にインストールしようとしている人にとって、ファイルをもう少し使いやすいものにしようとしましたが、私の考え方に大きな欠陥があることに気付きました。

>=3.6でのみ機能する setup.py でf-stringsを使用しています!

以前のバージョンの Python で 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 には何が推奨されますか?


編集:

3.8.2 がリリースされ、この質問についてもう一度考えさせられました。だから私は質問を言い直しました。

setup.py スクリプトで Python のマイナー バージョン アップデートの機能を使用できるのはいつですか?

F ストリングは 3.6 で追加されました。setup.py でそれらを使用し始めることが許容されるようになるのはどの時点ですか? 2 つのマイナー バージョン?三?次のメジャーバージョン?

4

0 に答える 0