使用 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 吗? 您可以使用pipeasy_installvirtualenv. 内部或外部安装python 包,我推荐pip,因为它比easy_install 有几个优点。 所以,我几乎放弃了 virtualenv --no-site-packages,并决定使用您的解决方案。它可以进行一些调整(如 virtualenvwrapper 网站上所述)。干杯伙伴。

以上是关于使用 Virtualenv 安装 Django 出错了的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 virtualenv 在 django 中启动一个新项目

使用Virtualenv搭建Python3的Django环境

windows下安装virtualenv/Django

Django搭建博客-搭建开发环境

使用Nginx+Gunicorn+virtualenv+supervisor来部署django项目

为 Django 安装 MySQL-python