python - 如何在应用程序的源代码管理中管理 python 版本?

标签 python version-control virtualenv pyenv

我们有一个使用 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 的用户,您可以在 模块级别的某个位置对 sys.version 进行显式检查>setup.py 文件。但是,请注意,使用此解决方法,pip 仍将下载该软件包 - 稍后如果尝试使用不正确的解释器版本进行 pip install,则会失败。

关于python - 如何在应用程序的源代码管理中管理 python 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43527846/

相关文章:

Python,虚拟环境 : Getting permission error while activating

python - 带有 ManyToMany 的 Django QuerySet 被传递给自定义序列化程序

python - getch() 在打印之前获取输入

python - Seaborn 箱线图和线图显示不正确

git - 如何从 GitHub 存储库中的环境中删除 github-pages?

version-control - 在处理许多具有通用代码库的小项目时,良好的 github 结构?

python - 在 virtualenv 中安装 django 1.5(开发版)

python - pyenv:pip:找不到命令

python - 如何使用 Python 函数显示不同的错误消息

git - 如何通过保留作者来复制行