2014-03-04 43 views
0

我正在ubuntu工作。我已经在根目录下安装了django == 1.3。现在我使用virtualenv创建了本地虚拟环境名称local_env。然后我激活了local_env使用命令。但我没有在这个local_env环境中安装django。当我尝试使用为什么django-admin.py在root不是虚拟环境中执行?

django-admin.py startproject sampleproject 

创建django示例项目时,它工作正常。我的问题是,它没有阻止local_env环境?我的意思是它没有提出像django-admin.py command didn't found这样的错误。如有疑问,请提出意见。

+0

您是否使用'--no-site-packages'选项创建了virtualenv?顺便说一句,在最新'virtualenv'这是默认。 – Babu

回答

1

01的virtualenv的版本位于OS路径中。当你尝试在你的虚拟环境中执行它时,python会查看它的VE的sys.path,如果没有找到,它将搜索OS路径,从根环境找到它,所以没有显示错误。

+0

感谢您的好解释 – dhana

0

根据docs,django-admin.py命令安装在您的系统路径中,所以如果virtualenv未找到此命令,它可能会查找全局sys路径并找到匹配项。

如果你想使用不同版本的django来安装你的sys路径,你需要使用像pip这样的包管理器将它安装到你的vritualenv中,然后这将在全局django-admin的.py

要确保你这样做的权利,加载您使用

[email protected]:~$ source local_env/bin/actviate 

如果成功的virtualenv,您应及时在年初有virtualenv中的名字 - 例如

(local_env)[email protected]:~$ 

请注意,如果您在一个shell中激活virtualenv,但在单独的shell中运行python解释器,则将使用全局解释器,因此可以使用全局django-admin.py模块。

接下来,您将要安装的Django的模块

(local_env)[email protected]:~$ pip install django 

要检查是否安装了虚拟包膜内的Django,则可以使用软件包管理工具点子,并通过冻结参数

(local_env)[email protected]:~$ pip freeze 

现在你可以使用的django-admin.py

(local_env)[email protected]:~$ django-admin.py startproject sampleproject