【问题标题】:pip installing in usr/lib/python3.6/site-packages instead of virtualenv on ubuntu serverpip 安装在 usr/lib/python3.6/site-packages 而不是 ubuntu 服务器上的 virtualenv
【发布时间】:2020-06-16 00:51:03
【问题描述】:

在我的 virtualenv 上安装软件包时遇到问题。这一切都是在我将 pip 升级到最新版本时开始的。我试图将我的 pip 版本恢复到我认为它稳定的位置。例如,当我尝试安装 django-tables2 时,它说:

Requirement already satisfied: django-tables2 in /usr/lib/python3.6/site-packages (2.3.1)
Requirement already satisfied: Django>=1.11 in /usr/local/lib/python3.6/dist-packages (from django-tables2) (2.2.4)
Requirement already satisfied: pytz in /usr/local/lib/python3.6/dist-packages (from Django>=1.11->django-tables2) (2019.2)
Requirement already satisfied: sqlparse in /usr/local/lib/python3.6/dist-packages (from Django>=1.11->django-tables2) (0.3.0)
WARNING: You are using pip version 19.3.1; however, version 20.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

但是当我在我的 virtualenv 中检查我的文件夹时,它并没有显示在那里。我尝试了一些命令,例如which pipwhich pip3,它说:

(unidaenv) root@UnidaWebApplication:/home/unidaweb/unidaproject# which pip
/home/unidaweb/unidaproject/unidaenv/bin/pip
(unidaenv) root@UnidaWebApplication:/home/unidaweb/unidaproject# which pip3
/home/unidaweb/unidaproject/unidaenv/bin/pip3
(unidaenv) root@UnidaWebApplication:/home/unidaweb/unidaproject#

我也尝试了pip list,但找不到安装到我的 virtualenv 的包。

当我尝试将bad gateway error 添加到我的settings.py 时,我得到了一个bad gateway error,我真的不知道如何解决这个问题,但是当我使用我知道运行稳定的 pip 版本时项目,我没有收到此错误,我可以将我需要的任何包安装到我的项目中。任何帮助将非常感激。我在这个问题上坚持了大约一个星期,希望有人可以帮助我解决这个问题。

【问题讨论】:

  • 你试过在 python 的主目录中直接从 powershell 运行 pip 吗?

标签: python django pip


【解决方案1】:

virtualenvs 偶尔会中断,尤其是当有人更新了 virtualenv 所基于的 python 可执行文件或它的某些包/共享库时。

我建议尝试使用新的 virtualenv。 (删除损坏的并替换它)

进一步。

为了调试,我建议输入以下两个命令: type -a pythontype -a pip

如果您的搜索路径有一些隐藏的惊喜,调用可能会更安全 python -m pip 而不是 python 虽然在正确设置的 virtualenv 中它不应该有所作为。

【讨论】:

  • 当我输入type -a python时,它说:python is /usr/bin/python。
  • 当我输入type -a pip时,它说:pip is /home/unidaweb/unidaproject/unidaenv/bin/pip pip is /usr/bin/pip
  • 如何删除旧的并用新的替换它?我需要一些命令来删除它吗?
  • 如果type -a 显示多行,那么第一行就是您感兴趣的行。这令人惊讶。通常,如果您从 virtualenv 中获得 pip,您也会从中获得 python。您可以尝试输入hash -r,然后再输入ltype -a python,如果这不起作用输入export PATH="/home/unidaweb/unidaproject/unidaenv/bin/pip:$PATH",然后输入hash -r,然后再试一次
  • 我试过上面的命令,还是不行。当我输入type -a python 时,它仍然给我同样的结果。
猜你喜欢
  • 2017-09-02
  • 1970-01-01
  • 2018-10-10
  • 2015-05-09
  • 2017-04-25
  • 2017-12-23
  • 1970-01-01
  • 2010-11-15
  • 2018-09-17
相关资源
最近更新 更多