我们有一个使用 pyenv/virtualenv 来管理 python 依赖项的应用程序。我们希望确保使用该应用程序的每个人都拥有相同的 python 版本。来自 ruby,类似物是 Gemfile。在某种程度上,.ruby-version。
Python 中的等价物是什么?是 .python 版本吗?我见过不少 .gitignore 中有这样的内容,并且通常在注释“.pyenv”下。这是什么原因呢?还有什么替代方案吗?
最佳答案
最新版本的 setuptools
(24.2.0+) 允许您在分发级别控制 Python 版本。
例如,假设您只想允许在 Python 3.6(兼容)版本上安装,您可以指定:
# in setup.py
from setuptools import setup
setup(
...
python_requires='~=3.6',
...
)
由此设置构建的发行版将具有关联的元数据,这将阻止在不兼容的 Python 版本上进行安装。您的客户端需要当前版本的 pip
才能使此功能正常工作,较旧的 pip (<9.0.0) 将不会检查此元数据。
如果您必须将要求扩展到使用旧版本 pip
的用户,您可以在 模块级别的某个位置对
文件。但是,请注意,使用此解决方法,pip 仍将下载该软件包 - 稍后如果尝试使用不正确的解释器版本进行 sys.version
进行显式检查>setup.pypip install
,则会失败。
关于python - 如何在应用程序的源代码管理中管理 python 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43527846/