【问题标题】:How can I specify a python version using setuptools? [duplicate]如何使用 setuptools 指定 python 版本? [复制]
【发布时间】:2016-09-10 00:54:24
【问题描述】:

有没有办法指定与 setup.py 中定义的 python 包一起使用的 python 版本?

我的 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 版本?我似乎在the docs 中找不到任何东西,但也许我没有找对地方?

【问题讨论】:

  • 它是否需要 Python 3?如果是这样,您可以在文件运行时检查当前版本并抛出错误。

标签: python setuptools


【解决方案1】:

使用较新版本的 setuptools(24.2.0 或更高版本)和较新版本的 pip(9.0.0 或更高版本)您可以使用python_requireshttps://packaging.python.org/tutorials/distributing-packages/#python-requires

Python 3+:

python_requires='>=3',

如果您的包适用于 Python 3.3 及更高版本,但您还不愿意承诺支持 Python 4,请写:

python_requires='~=3.3',

如果您的包适用于 Python 2.6、2.7 以及从 3.3 开始的所有 Python 3 版本,请编写:

python_requires='>=2.6, !=3.0.*, !=3.1.*, !=3.2.*, <4',

对于旧版本,旧答案/解决方法。

您可以使用sys.versionplatform.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())

【讨论】:

猜你喜欢
  • 2012-07-13
  • 2014-10-17
  • 2011-08-23
  • 2017-07-20
  • 1970-01-01
  • 2013-07-30
  • 2017-09-29
  • 1970-01-01
  • 2010-12-29
相关资源
最近更新 更多