虚拟环境中无法创建Django超级用户的权限问题求助
问题描述
- 激活虚拟环境后执行命令:
报错信息:(VENV) user@server:/var/www/html/django-apps/GT1$ python manage.py createsuperuserTraceback (most recent call last): File "/var/www/html/django-apps/GT1/manage.py", line 11, in main from django.core.management import execute_from_command_line ModuleNotFoundError: No module named 'django' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/var/www/html/django-apps/GT1/manage.py", line 22, in <module> main() File "/var/www/html/django-apps/GT1/manage.py", line 13, in main raise ImportError( ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? - 使用
sudo pip install django时,提示Django已安装在系统路径/usr/local/lib/python3.10/dist-packages,而非虚拟环境内 - 卸载系统Django后,在
/var/www下用sudo创建的GT_Dev1虚拟环境中安装Django时,遭遇权限错误
解决步骤
1. 修复虚拟环境权限
虚拟环境由sudo创建导致当前用户无读写权限,执行以下命令调整所有者:
# 替换为你的虚拟环境实际路径 sudo chown -R $USER:$USER /var/www/python_envs/GT_Dev1
2. 重新激活虚拟环境并安装Django
# 激活虚拟环境 source /var/www/python_envs/GT_Dev1/bin/activate # 安装指定版本Django(不要加sudo) pip install django==4.2.2
验证安装路径是否在虚拟环境内:
pip show django
输出的Location字段应指向虚拟环境目录下的site-packages文件夹。
3. 验证功能正常
回到项目目录执行命令,确认可创建超级用户:
python manage.py createsuperuser
4. 后续注意事项
- 禁止使用
sudo在虚拟环境内执行pip命令,否则包会被安装到系统路径而非虚拟环境 - 若需在
/var/www下创建项目或虚拟环境,先给当前用户赋予目录权限:
后续无需sudo即可操作,避免权限冲突sudo chown -R $USER:$USER /var/www/html/django-apps
内容的提问来源于stack exchange,提问作者dchammer
相关产品推荐
相关产品推荐

