Python3、pip3与Django2使用困惑求助(Ubuntu 17环境)
关于Ubuntu下Python多版本与Django安装的解惑
嘿,刚接触Python和Django就遇到版本问题太正常啦,我来给你捋得明明白白~
为什么Ubuntu会同时存在多个Python版本?
- Ubuntu 17系统默认自带Python2,因为很多系统底层工具还依赖它运行,你手动安装Python3后,自然就出现了双版本共存的情况。千万不要随便卸载Python2,不然可能导致系统自带的脚本、工具直接罢工,得不偿失。
为什么StackOverflow里说不建议用pip3升级?
这里的说法其实是有前提的:大家不建议的是用pip3升级系统自带的Python包,而不是不能用pip3安装/升级你自己项目的依赖。具体原因有两个:
- 系统自带的Python3里有些包是给系统工具服务的,强行升级可能打破依赖链,比如某些系统管理脚本突然跑不起来了。
- 如果直接用
pip3 install --upgrade django,会把Django装到Python3的全局环境里,后续你要是有其他项目需要不同版本的Django,两个版本就会互相干扰,排查起来头疼。
正确的操作姿势:用虚拟环境隔离依赖
这是Python社区公认的最佳实践,能完美解决多版本冲突问题:
- 先安装Python3的虚拟环境工具:
sudo apt install python3-venv - 给你的Django项目创建一个独立的虚拟环境(名字随便取,比如
my_django_env):python3 -m venv my_django_env - 激活这个虚拟环境:
激活后命令行开头会出现source my_django_env/bin/activate(my_django_env)的标识,这时候你用pip(不用加3,因为虚拟环境已经绑定了当前的Python3)安装Django,只会影响这个独立环境:pip install django==2.x.x # 把x.x换成你需要的具体2.x版本,比如2.2.28 - 用完虚拟环境后,输入下面的命令就能退出:
deactivate
几个实用小命令
- 检查当前Python版本:
python --version(对应系统默认的Python2)、python3 --version(你安装的Python3) - 检查pip对应的Python版本:
pip --version、pip3 --version,看输出里的Python路径就能清楚区分
补充一句:不用纠结全局环境的Django版本,用虚拟环境完全可以按需安装不同版本,既安全又灵活~
内容的提问来源于stack exchange,提问作者Viet
相关产品推荐
相关产品推荐

