如何在virtualenv中强制安装软件包?

时间:2018-10-31 07:11:33

标签: python django pip

尝试以与系统中不同的版本安装django,它向我显示:

Installing collected packages: Django
Found existing installation: Django 1.7.11
Not uninstalling django at /home/user/lib/python2.7, outside environment /home/user/webapps/v2_dev/venv

成功安装了Django-1.8.19

但是实际上有旧版本

尝试了不同的命令:

./venv/bin/pip install Django==1.8.11

pip install Django==1.8.11

已更新: 当我安装我的软件包时,它显示:

The required version of setuptools (>=16.0) is not available,
and can't be installed while this script is running. Please
install a more recent version first, using
'easy_install -U setuptools'.
(Currently using setuptools 3.1 (/home/user/lib/python2.7/setuptools-3.1-py2.7.egg))

升级时:

venv/bin/pip install --upgrade setuptools
Requirement already up-to-date: setuptools in ./venv/lib/python2.7/site-packages (40.5.0)

4 个答案:

答案 0 :(得分:3)

与其像setuptools那样安装Django./venv/bin/pip install ...,不如尝试先激活虚拟环境,然后再安装所需的东西。

激活虚拟环境:

转到虚拟环境所在的文件夹(通常是项目的根文件夹),然后输入以下两个之一:

  • source venv/bin/activate (基于Unix的系统)
  • venv\Scripts\activate (适用于Windows)

这将确保您不会混合安装在不同环境中的软件包。

强制重新安装软件包:

  • 可以通过添加以下内容来进行简单升级:--upgrade-U
  • 可以通过添加以下内容来强制重新安装软件包:--force-reinstall

在您的情况下(一旦激活环境)

python -m pip install -U --force-reinstall setuptools Django

逐步:

  1. 停用并删除旧的虚拟环境
  2. 使用python -m virtualenv venv(python 2)或python -m venv venv(python 3)创建新环境

    上面的

    python 是您要在项目中使用的解释器。那是您可能要使用例如python3或某些绝对路径的唯一点。以后按原样使用代码。

  3. source venv/bin/activate

    激活虚拟环境

  4. python -m pip install -U pip

    如果您对ImportError: No module named _internal有疑问,则可能是您使用的是旧版的点子。问题描述here

  5. python -m pip install -U --force-reinstall -r requirements.txt

    -U --force-reinstall在新鲜的环境中有点过大,但这不会造成伤害

  6. 转到manage.py所在的位置,然后使用python manage.py runserver

  7. 启动服务器

答案 1 :(得分:1)

尽管在全局python中已经安装了某些东西,我还是在寻找如何在virtualenv中强制安装它的时候来到了这篇文章。使用--system-site-packages创建虚拟环境时会发生这种情况。

在这种情况下,对于某些软件包,在virtualenv中拥有本地版本可能很重要,即使对于许多其他软件包,我们可以共享全局版本。例如,pytest就是这种情况。但是,如果pip可以在系统站点中找到最新版本,它将拒绝在virtualenv中安装软件包。

解决方案是使用pip install --ignore-installed mypackage

答案 2 :(得分:0)

问题出在Webfaction VPS中

在/ home / username / webapps / appName / env / lib / python2中需要一个名为sitecustomize.py的空文件。

该空文件将覆盖其python自定义设置,其中之一是在〜/ lib / python2.7目录中包括所有软件包。

您可能需要停用虚拟环境,然后再次将其激活才能使更改生效。

答案 3 :(得分:0)

解决方法,但是可行!

在virtualenv目录中,更改pyvenv.cfg文件的属性

include-system-site-packages = True

这将导致使用主机上安装的软件包