繁体   English   中英

Linux中的Python和python3有不同的pip吗?

[英]Is Python and python3 in Linux has different pip?

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

python manage.py runserver 

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

python3 manage.py runserve

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

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

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

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

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

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

python -m pip [...]

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

因此,为了在您的 Python 3.10.1 环境中安装 Django,您需要运行:

python -m pip install django

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

您的机器上有多个 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 ,那么它将在特定虚拟环境的上下文中运行。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM