Linux中的Python和python3有不同的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环境中安装了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

如果使用PIP3安装模块,它将仅为Python3安装。如果使用PIP安装模块,系统将使用PATH变量中第一个列出的Python版本。

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

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

sudo apt install python3-venv python3-pippython3 -m venv venv

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

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

pip install django

然后如果你运行:

CCD_ 14,那么它将在特定虚拟环境的上下文中运行。

我知道这不是你问题的直接答案,但我相信这将有助于你在未来避免此类问题。

相关内容

  • 没有找到相关文章

最新更新