我开发了一个Python / Django应用程序,它从虚拟环境(由virtualenv
创建)运行。
创建虚拟环境时,默认情况下会将pip
的全局版本复制到新创建的环境中,这可能已过时(例如,来自1.5.4
的版本python-pip
在Ubuntu 14.04上打包。
为避免手动pip
升级,将pip
版本固定在requirements.txt
文件中似乎是一个好主意,例如添加以下行:
pip==8.1.2
通过更改需求文件中的行,指定pip
版本还允许在所有托管应用程序环境(本地,开发,生产)中升级pip
。
这听起来像是一种好习惯吗?这种方法有什么问题吗?
答案 0 :(得分:4)
请注意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
答案 1 :(得分:0)
您遇到的问题是由Ubuntu 14.04随附的旧版python-virtualenv
引起的。您应该删除Ubuntu软件包并通过pip安装:
sudo pip install virtualenv
然后确保你也安装了最新的pip。
sudo pip install -U pip
您应该在新的虚拟环境中安装该版本。