为什么?djangadmin.py在根目录而不是虚拟环境中执行?

2024-04-29 15:02:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

django-admin.py startproject sampleproject

它工作得很好。我的问题是,它没有阻止本地环境环境?。我的意思是它不会像django-admin.py command didn't found那样引发错误。如有疑问,请发表意见。在


Tags: djangopy命令sampleprojectenv环境virtualenvadmin
2条回答

根据docs,django-管理员py命令安装在系统路径上,因此如果virtualenv找不到这个命令,它可能会查找全局sys路径并找到匹配项。在

如果您想使用与sys路径上安装的版本不同的django版本,则需要使用pip之类的包管理器将其安装在vritualev中,然后这将成为全局django的先例-管理员py在

为了确保您的操作正确,请使用

dhanna@dhanna:~$ source local_env/bin/actviate

如果成功,提示的开头应该有virtualenv名称-例如

^{pr2}$

注意,如果您在一个shell中激活virtualenv,但是在一个单独的shell中运行python解释器,那么您将使用全局解释器,因此拥有全局django-管理员py模块可用。在

接下来需要安装django模块

(local_env)dhanna@dhanna:~$ pip install django

要检查django是否安装在虚拟env中,可以使用包管理工具pip并传递freeze参数

(local_env)dhanna@dhanna:~$ pip freeze

现在您可以使用virtualenv的django版本了-管理员py在

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

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

相关问题 更多 >