使用 Virtualenv 安装 Django 出错了
Posted
技术标签:
【中文标题】使用 Virtualenv 安装 Django 出错了【英文标题】:Django installation using Virtualenv gone wrong 【发布时间】:2013-10-11 01:52:37 【问题描述】:所以我一直在我的 ubuntu (12.04) 上使用 python (2.7.x) 和 django 框架。我设置基于 django 的项目的方式是使用 virtualenv
我是这样干的
** FROM TERMINAL **
1. sudo apt-get install python-setuptools
2. sudo easy_install virtualenv
然后我继续使用以下命令为我的 django 项目设置目录:
virtualenv --no-site-packages project-name
不久之后,我激活了我的 virtualenv:
source project-name/bin/activate
然后我继续使用 Django 框架安装:
sudo easy_install Django
并通过检查 project-name/bin/ 目录下是否有一个名为 django-admin.py 的文件(存在)来验证 Django 框架是否安装在我的 virtualenv 中。
但是,我第二次尝试按照与上述相同的步骤创建另一个 django-project(完全不同的一个)时,我没有在正确的目录中安装 django-admin.py。它已安装到 /usr/lib/python...
当我尝试运行该应用程序时,我收到以下消息:
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
有人知道为什么会这样吗?
谢谢。
* 编辑部分 *
回复 sachitad 的回答
当我执行他/她的建议时,我收到以下消息
(project-name)blah@blah:~/Documents/python/project-name$ easy_install django
error: can't create or remove files in install directory
The following error occurred while trying to add or remove files in the
installation directory:
[Errno 13] Permission denied: '/home/blah/Documents/python/project-name/lib/python2.7/site-packages/test-easy-install-3775.write-test'
您指定的安装目录(通过 --install-dir、--prefix 或 distutils 默认设置)是:
/home/blah/Documents/python/project-name/lib/python2.7/site-packages/
这就是为什么,我最初认为我需要使用 sudo 命令。
【问题讨论】:
【参考方案1】:./home/user/path_to_virtual_env_project_/bin/pip 安装 Django
您调用不在虚拟环境中的 pip。 好像激活不行。
【讨论】:
【参考方案2】:问题:
sudo easy_install Django
即使你已经激活了 virtualenv,在 virtualenv 中安装包时,永远不要使用sudo
。如果您使用 sudo,则假定您在系统路径(/usr/lib/local/..)
上安装。
因此,
easy_install django
或
pip install django
应该可以。
【讨论】:
是他的 :) 哦,原来你的项目目录里面没有写权限。授予写访问权限,您应该没问题。chmod -R u+rw project_name
我收到一堆类似这样的消息 chmod: 更改 `project-name/local' 的权限:不允许操作6 root root 4096 Okt 4 13:45 项目名称
sudo chmod -R u+rw project_name
我仍然收到相同的错误消息。我将尝试删除项目文件夹。并再次从头开始创建它。否则我会尝试使用艾略特的建议。
你需要做chown -R blah:yourgroup project_name
【参考方案3】:
作为 sachitad 答案的补充,我建议您查看virtualenvwrapper,它允许您使用以下命令轻松管理您的虚拟环境:
mkvirtualenv your_project_name // create a virtual environment
workon your_project_name // select this virtual environment
pip install django // will install in this virtualenv
【讨论】:
我需要在这个虚拟环境中安装 pip 或 easy_install 吗? 您可以使用pip
或easy_install
在virtualenv.
内部或外部安装python 包,我推荐pip
,因为它比easy_install
有几个优点。
所以,我几乎放弃了 virtualenv --no-site-packages,并决定使用您的解决方案。它可以进行一些调整(如 virtualenvwrapper 网站上所述)。干杯伙伴。以上是关于使用 Virtualenv 安装 Django 出错了的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 virtualenv 在 django 中启动一个新项目
使用Virtualenv搭建Python3的Django环境