django不会出现在virtualenv中

时间:2014-01-05 09:04:09

标签: python django virtualenv

我正在尝试使用virtualenv。 我将它安装在我的ubuntu系统上,按照here给出的简单步骤 但是当我激活我的虚拟环境并尝试做

$ python manage.py runserver

它抛出错误

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

我试图看看django是否可以从我的虚拟环境访问,所以它试图

$ python 
>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named django

并且相同的import django在virtualenv中运行良好。

我还尝试从root python setup中删除django文件夹并重新安装它。但都是徒劳的,问题仍然是一样的。我现在该怎么办?

PS:我试图运行easy_install Django&amp; easy_install django每当它说django已经是他们的时候,从虚拟环境中获得了无数次。

PPS:我不知道它是否具有重要意义,但在系统完成所有这些操作之前,它们是django安装。

2 个答案:

答案 0 :(得分:0)

检查你的manage.py,第一行需要定义python可执行文件,通常是#!/usr/bin/env python。这应该是virtualenv中python可执行文件的路径,而不是全局可执行文件的路径。如果您在系统范围内安装了Django,那么这不会有问题。

以防万一

virtualenv venv
source venv/bin/activate
python manage.py runserver

答案 1 :(得分:0)

[为遇到同样问题的Windows用户添加此信息]

如果您在Windows上遇到此问题,请确保您的虚拟环境处于活动状态(您的提示类似于(venv) d:\myproject),并且您明确地运行了python.exe。

在后一点上,不要运行py.exe(3.3中引入的Python Launcher)或依赖.py文件关联来运行Python。这两个都会在你的虚拟环境之外运行一个Python版本,因此会有错误的站点包。

如果您的虚拟环境有django 1.8.6,但您的核心Python安装没有django,那么:

  • python -c "import django;print(django.get_version())"可以使用并打印1.8.6
  • py -c "import django;print(django.get_version())"将因&#34; ImportError: No module named django&#34;
  • 而失败