我们有一个使用pyenv / virtualenv来管理python依赖项的应用程序。我们希望确保在应用程序上工作的每个人都具有相同的python版本。来自ruby,模拟是Gemfile。在某种程度上,.ruby-version。
python中的等价物是什么?是.python版本吗?我已经看过很多.gitignore,其中包含了这些内容,并且通常会发表评论" .pyenv"。原因是什么?什么是另类?
答案 0 :(得分:2)
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
尝试使用不正确的解释程序版本时,它将失败。