我有一个 Python 代码库的 requirements.txt 文件。该文件包含了所有的规格要求:
pytz==2017.2
requests==2.18.4
six==1.11.0
我正在添加一个新的包。我应该列出它的版本吗?如果是,我该如何选择具体的版本?
我有一个 Python 代码库的 requirements.txt 文件。该文件包含了所有的规格要求:
pytz==2017.2
requests==2.18.4
six==1.11.0
我正在添加一个新的包。我应该列出它的版本吗?如果是,我该如何选择具体的版本?
查看pip文档以获取更多信息,但基本上您不需要指定版本。这样做可能会避免麻烦,因为指定版本可以确保您不会陷入依赖关系地狱。
请注意,如果您正在创建要部署和pip安装的软件包,则应使用install-requires元数据而不是依赖于requirements.txt。
此外,养成使用虚拟环境的习惯以避免依赖问题尤其重要,特别是在开发自己的东西时。 Anaconda提供了一个简单的解决方案,使用conda create
命令,而virtualenv
与virtualenvwrapper
非常适合轻量级解决方案。另一种解决方案pipenv
也很受欢迎。
pip freeze > requirements.txt
这将自动生成一个 requirement.txt 文件,其中包含您安装的包及其各自的版本。
提示:您应该为每个项目使用虚拟环境。这样可以为您创建一个“隔离的空间”,在其中安装特定的软件包版本,而不会影响其他项目。这将在未来节省很多麻烦,因为您的软件包和版本将保持项目特定。我建议使用Python 的 'venv' 系统。
没有必要指定版本号,但是指定一个版本号可能是个好主意。
如果你想指定一个版本号,但不确定该指定哪个版本,请尝试使用pip freeze
命令,它可以显示出你当前已安装的所有软件包及其版本。