Python 为什么django-admin.py是在root而不是虚拟环境中执行的?

Python 为什么django-admin.py是在root而不是虚拟环境中执行的?,python,django,ubuntu,virtualenv,Python,Django,Ubuntu,Virtualenv,我在ubuntu工作。我之前已经在root中安装了django==1.3。现在,我使用virtualenv创建了本地虚拟环境名为local_env。然后我使用source命令激活了local_env,但是我没有在这个local_env环境中安装django。当我尝试使用 django-admin.py startproject sampleproject 它工作得很好。我的问题是,它没有阻止根环境中的本地_env?。我的意思是,它没有引发错误,比如django-admin.py命令没有找到。如

我在ubuntu工作。我之前已经在root中安装了django==1.3。现在,我使用
virtualenv
创建了本地虚拟环境名为local_env。然后我使用source命令激活了local_env,但是我没有在这个local_env环境中安装django。当我尝试使用

django-admin.py startproject sampleproject
它工作得很好。我的问题是,它没有阻止根环境中的本地_env?。我的意思是,它没有引发错误,比如django-admin.py命令没有找到。如果有任何疑问,请发表评论。

根据,django-admin.py命令安装在您的系统路径上,因此如果virtualenv没有找到此命令,它可能会在全局系统路径中查找并找到匹配项

如果您想使用与sys path上安装的django版本不同的django版本,则需要使用诸如pip之类的包管理器将其安装到vritualenv中,然后这将取代全局django-admin.py

(local_env)dhanna@dhanna:~$ django-admin.py startproject sampleproject
为了确保您的操作正确,请使用

dhanna@dhanna:~$ source local_env/bin/actviate
如果成功,提示的开头应该有virtualenv名称-例如

(local_env)dhanna@dhanna:~$
请注意,如果在一个shell中激活virtualenv,但在另一个shell中运行python解释器,则将使用全局解释器,因此全局django-admin.py模块可用

接下来,您需要安装django模块

(local_env)dhanna@dhanna:~$ pip install django
要检查django是否安装在虚拟环境中,可以使用包管理工具pip并传递freeze参数

(local_env)dhanna@dhanna:~$ pip freeze
现在您可以使用virtualenv版本的django-admin.py

(local_env)dhanna@dhanna:~$ django-admin.py startproject sampleproject

django admin.py
位于操作系统路径中。当您尝试在虚拟环境中执行它时,python将查看它的VE的
sys.path
,如果没有找到,它将搜索操作系统路径,从根环境中找到它,因此没有显示错误。

您是否使用
--无站点包
选项创建了virtualenv?顺便说一句,在最新的
virtualenv
中,它是默认值。