virtualenv环境下Django导入失败求助:ModuleNotFoundError及路径疑问
嘿,我来帮你搞定这个问题!作为Linux新手遇到这种情况太正常了,咱们一步步来排查解决:
先确认你的Virtualenv是否正确激活
这是最常见的坑!激活虚拟环境后,你的命令行提示符前面会出现(your_env_name)的标记。如果没看到这个,说明环境没激活,此时用的是系统默认的Python,自然找不到虚拟环境里装的Django。
激活命令(Linux下):source /path/to/your/virtualenv/bin/activate把
/path/to/your/virtualenv换成你实际的虚拟环境目录路径就行。检查当前使用的Python和Pip是否属于虚拟环境
激活环境后,运行下面两个命令,确认路径指向虚拟环境的目录:which python which pip正常输出应该类似
/home/your_username/your_env/bin/python和/home/your_username/your_env/bin/pip。如果输出的是系统路径(比如/usr/bin/python),说明激活过程有问题,或者你可能在激活前就运行了其他修改PATH的命令。重新在虚拟环境中安装Django
确保激活环境后,直接用pip安装(不要加sudo!加sudo会把Django装到系统级Python里,虚拟环境访问不到):pip install django安装完成后,运行下面的命令验证:
python -m django --version如果能显示Django的版本号,说明安装成功了。
关于路径变量的问题
不需要手动设置路径变量!激活Virtualenv的时候,它会自动把虚拟环境的bin目录加到系统PATH的最前面,这样你运行python和pip时,优先使用虚拟环境里的版本。如果激活后还是不行,大概率是激活步骤没做对,或者你的终端配置(比如.bashrc/.zshrc)里有修改PATH的脚本影响了虚拟环境的设置。
内容的提问来源于stack exchange,提问作者Tarun K

