我们有一个使用 pyenv/virtualenv 来管理 python 依赖项的应用程序。我们希望确保在应用程序上工作的每个人都拥有相同的 python 版本。来自 ruby 的类似物是 Gemfile。在某种程度上,.ruby 版本。
python中的等价物是什么?它是 .python 版本吗?我已经看到很多 .gitignore 包含它,并且通常在注释“.pyenv”下。这是什么原因?还有什么选择?
我们有一个使用 pyenv/virtualenv 来管理 python 依赖项的应用程序。我们希望确保在应用程序上工作的每个人都拥有相同的 python 版本。来自 ruby 的类似物是 Gemfile。在某种程度上,.ruby 版本。
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.py
pip install