在Django中使用virtualenv时出现ImportError错误

3

我的问题很简单。

每当我在Django项目中使用virtualenv环境时,执行以下命令会出现以下错误:

python manage.py runserver

File "manage.py", line 8, in

 from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

但是当我使用root并给出相同的命令时,它似乎完美地工作。为什么会发生这种情况?我在虚拟环境中,这意味着默认情况下我就是root用户。如何解决这个错误?
我看过很多论坛,但找不到相关的信息。

使用 virtualenv venv --system-site-packages 命令创建一个新的虚拟环境。 - utkbansal
我应该在我的工作目录中执行这个操作吗?还是需要先停用它? - Black User
pip list 显示 Django 已安装吗? - utkbansal
我不明白你的意思,@utkbansal。我应该在哪里检查?是在pip文件夹内吗? - Black User
2个回答

4
这是因为您在系统范围内安装了django解释器,可能是通过执行sudo pip install django之类的命令安装的。
一旦创建并激活虚拟环境,该环境中不包含任何软件包。虚拟环境的概念是允许您安装Python软件包而不影响全局Python安装。
因此,一旦激活虚拟环境,您必须在该虚拟环境中安装软件包;所以在激活虚拟环境后,您应该像这样执行pip install django(注意:不需要sudo):
$ virtualenv sample_env
...
$ source sample_env/bin/activate
(sample_env) $ pip install django

虚拟环境是 Python 中的一种虚拟环境;它不控制用户登录到系统中。

最后,作为一个一般规则 - 在开发过程中不应该使用 root 用户,因为这样很容易危及您的系统。


谢谢Burhan,是的,我已经用sudo做了那个。但我被迫这样做,因为没有sudo会给我一个错误,像/home/usman/Django: bad interpreter: No such file or directory。 - Black User
1
看起来您已经损坏了系统上的文件权限 - 可能是由于滥用 sudo 导致的。 - Burhan Khalid
嗯,你有任何想法该如何修复吗?还有参考资料吗? - Black User

2

我在运行Django时遇到了同样的错误。我已经启用了虚拟环境,但仍然出现错误。

解决这个问题的方法是使用以下命令安装任何Python包:
python -m pip install django

这肯定会解决你的问题。它也解决了我的问题。


对我也起作用了,我可以在我的服务器上运行项目,但在我的电脑上却不能,这个解决了。 - DarkCygnus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接