[英]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
这里的问题是python
和python3
命令指向两个不同的 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.