3

我开发了一个 Python/Django 应用程序,它从一个虚拟环境(由 创建virtualenv)运行。

创建虚拟环境时pip,默认将全局版本复制到新创建的环境中,这可能已经过时了(例如,Ubuntu 14.04 上1.5.4的包中的版本)。python-pip

为了避免手动升级,将版本pip固定在文件中听起来是个好主意,例如添加以下行:piprequirements.txt

pip==8.1.2

在那里指定pip版本还允许pip通过更改需求文件中的行来升级所有托管应用程序环境(本地、开发、生产)。

这听起来像是一个好习惯吗?这种方法有什么问题吗?

4

2 回答 2

7

请注意,pip列出的版本requirements.txt将与其他要求一起安装。所以所有需求都将由旧版本安装,之后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
于 2016-09-19T10:24:12.517 回答
0

您遇到的问题是由python-virtualenvUbuntu 14.04 交付的旧版本引起的。您应该删除 Ubuntu 软件包并通过 pip 安装:

sudo pip install virtualenv

然后确保您也安装了最新的 pip。

sudo pip install -U pip

您应该在新的虚拟环境中安装该版本。

于 2016-09-19T09:51:08.307 回答