【问题标题】:pip-python not found within virtual environment在虚拟环境中找不到 pip-python
【发布时间】:2012-07-24 08:36:09
【问题描述】:

我已经安装了python-virtualenv和python-virtualenvwrapper,并使用mkvirtualenv NAME创建了一个虚拟环境,然后通过workon NAME激活它。通过查看 ~/.virtualenvs/NAME/bin 我看到 pip 安装在那里。

但是,当我尝试通过 pip 安装任何东西时,我被告知 pip-python: command not found

我还没有在系统范围内安装 pip,并且认为我不需要安装它,因为它已经安装在虚拟环境中。现在,这一切让我相信我的 $PATH 没有正确设置某些东西,那会是什么?一旦我像这样进入虚拟环境: (NAME)[user@host]$ 我的路径不应该已经修改为在该环境中使用 pip 安装吗?我需要做什么才能做到这一点?

【问题讨论】:

    标签: python virtualenv pip virtualenvwrapper


    【解决方案1】:

    您必须在您的系统上安装pip 才能在virtualenv 中访问它。

    【讨论】:

    • 即使在创建过程中 pip 已经安装在 virtualenv 中?如果我在 virtualenv 中给出该版本 pip 的绝对路径,一切正常:./.virtualenvs/NAME/bin/pip install Django 将在 virtualenv 中安装 Django
    • virtualenv 创建某种链接到实际安装。例如,它总是使用本地安装的 python 及其标准库。 pip 也是如此。
    • 所以,我在系统范围内安装了python-pip,现在找到了命令,但它不知道虚拟环境。当我的 virtualenv 处于活动状态时,系统范围的 pip 不知道我通过使用 virtualenv 的 pip 的绝对路径安装到 virtualenv 的包。
    • 可能是安装顺序错误造成的。尝试创建一个新环境。
    • 不行。因为它是系统范围的 pip,所以它试图安装到 /user/lib/python2.6 而不是 virtualenv 中的 python 安装
    【解决方案2】:

    pip-python 是某些 Linux 发行版中可执行文件的名称。它在我的 Fedora 机器上。

    pip 安装在virtualenv 中时,可执行文件的名称只是pip,而不是pip-python。所以你需要用~/.virtualenvs/NAME/bin/pip来执行它,而不是~/.virtualenvs/NAME/bin/pip-python

    【讨论】:

    • 对 - 我想弄清楚为什么当 virtualenv 处于活动状态时 pip 没有添加到我的 $PATH 中。当我在 virtualenv 中时,我不想每次想要安装、更新或删除某些东西时都必须给出它的绝对路径。制作别名也不理想,因为如果我更改 virtualenv,则别名将指向不正确的 pip 实例。我认为所有这些都应该由 virtualenv 自己处理。
    • @lightstrike 当你在激活的 virtualenv 中时,pip 应该调用它。 pip-python 会调用系统 pip,因为激活 virtualenv 只是在 $PATH 开头插入环境
    猜你喜欢
    • 1970-01-01
    • 2021-12-30
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    相关资源
    最近更新 更多