【问题标题】:Is Python and python3 in Linux has different pip?Linux中的Python和python3有不同的pip吗?
【发布时间】:2022-01-19 13:52:12
【问题描述】:

我在我的 Ubuntu 21.04 软件上安装了 Django,但是当我使用时:

python manage.py runserver 

我收到错误消息: 没有名为“Django”的模块 但是当我使用时:

python3 manage.py runserve

它工作正常,但我的 python —-version 是 3.10.1 而 python3 —version 是 3.9.x 那么错误是什么以及如何仅使用python而不是python3来运行它

【问题讨论】:

  • 这完全取决于您的系统是如何设置的,是否安装了任何 virtualenv 管理器,符号链接指向的位置等。
  • edit您的问题并添加有关您如何“安装Django”的更多详细信息。
  • 我用过(pip install django)

标签: python python-3.x django linux ubuntu


【解决方案1】:

这里的问题是 pythonpython3 命令完全指向两个不同的 Python 安装/环境。

看起来您在 Python 3.9.x 环境中安装了 Django(您可以通过键入 python3 访问该环境)。

另一方面,您的 Python 3.10.1 环境(您可以通过编写 python 访问)似乎没有安装 Django。

pip/pip3 命令有时会令人困惑,并且可能指向与您认为的不同的 Python 安装。这完全取决于您如何在机器中设置 Python 环境。

为了访问特定Python环境的pip,最好的方法是将其作为模块运行,例如:

python -m pip [...]

这保证您使用的pip 与您使用python 命令调用的Python 环境相关联。

所以为了在你的 Python 3.10.1 环境中安装 Django,你需要运行:

python -m pip install django

【讨论】:

    【解决方案2】:

    如果你使用 PIP3 安装模块,它只会安装 Python3。如果使用 PIP 安装模块,系统将使用 PATH 变量中最先列出的 Python 版本。

    【讨论】:

      【解决方案3】:

      您的机器上有多个 Python 实例。为避免将来出现此类问题,如果您在通用设备上运行代码,通常建议在 Python 中使用 Virtualenv。 (并且在你的机器上有多个 Python 实例)

      为了配置运行以下命令的 Virtualenv:

      sudo apt install python3-venv python3-pip python3 -m venv venv

      然后你激活虚拟环境: source venv/bin/activate

      一旦虚拟环境被激活,你就可以在这个特定的虚拟环境中安装 Python 模块,这样你就不必搞砸你所描述的问题了:

      pip install django

      然后如果你运行:

      python manage.py runserver, 那么它将在特定虚拟环境的上下文中运行。

      我知道这不能直接解决您的问题,但我相信它将帮助您避免将来出现此类问题。

      【讨论】:

        猜你喜欢
        • 2017-08-23
        • 2022-11-14
        • 2017-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-25
        相关资源
        最近更新 更多