在 requirements.txt 中指定 'pip' 版本
Specify 'pip' version in requirements.txt
我开发了一个 Python/Django 应用程序,它从虚拟环境(由 virtualenv
创建)运行。
创建虚拟环境时,默认将 pip
的全局版本复制到新创建的环境中,这可能已经过时(例如,版本 1.5.4
来自 python-pip
包裹 Ubuntu 14.04).
为避免手动 pip
升级,将 pip
版本固定在 requirements.txt
文件中听起来是个好主意,例如添加以下行:
pip==8.1.2
在那里指定 pip
版本也将允许通过更改需求文件中的行在所有托管应用程序环境(本地、开发、生产)中升级 pip
。
这听起来是个好习惯吗?这种方法有什么问题吗?
您遇到的问题是由 python-virtualenv
随 Ubuntu 14.04 提供的旧版本引起的。您应该删除 Ubuntu 包并通过 pip 安装:
sudo pip install virtualenv
然后确保您也安装了最新的 pip。
sudo pip install -U pip
你应该在新的虚拟环境中安装那个版本。
请注意,requirements.txt
中列出的 pip
版本将与其他要求一起安装。因此,所有要求都将由 pip
的旧版本安装,之后 requirements.txt
中指定的版本将可用。
我总是这样做:
virtualenv /path/to/my/desired/venv/
source /path/to/my/desired/venv/bin/activate
pip install -U pip
pip install -r requirements.txt
我开发了一个 Python/Django 应用程序,它从虚拟环境(由 virtualenv
创建)运行。
创建虚拟环境时,默认将 pip
的全局版本复制到新创建的环境中,这可能已经过时(例如,版本 1.5.4
来自 python-pip
包裹 Ubuntu 14.04).
为避免手动 pip
升级,将 pip
版本固定在 requirements.txt
文件中听起来是个好主意,例如添加以下行:
pip==8.1.2
在那里指定 pip
版本也将允许通过更改需求文件中的行在所有托管应用程序环境(本地、开发、生产)中升级 pip
。
这听起来是个好习惯吗?这种方法有什么问题吗?
您遇到的问题是由 python-virtualenv
随 Ubuntu 14.04 提供的旧版本引起的。您应该删除 Ubuntu 包并通过 pip 安装:
sudo pip install virtualenv
然后确保您也安装了最新的 pip。
sudo pip install -U pip
你应该在新的虚拟环境中安装那个版本。
请注意,requirements.txt
中列出的 pip
版本将与其他要求一起安装。因此,所有要求都将由 pip
的旧版本安装,之后 requirements.txt
中指定的版本将可用。
我总是这样做:
virtualenv /path/to/my/desired/venv/
source /path/to/my/desired/venv/bin/activate
pip install -U pip
pip install -r requirements.txt