manage.py - ImportError:没有名为django的模块

时间:2014-06-05 09:54:22

标签: python django importerror

我只是将一个正在运行的django应用程序从Windows系统移植到ubuntu,只需将所有文件复制到/var/www/some/dir/djangoApp即可。但现在,执行时

python manage.py runserver 8080

我收到错误:

ImportError: no module named django

我已经安装了python setup.py install/usr/local/lib/python2.7/dist-packages/django/的新版django,并添加了PYTHONPATH的路径。

linux系统没有由我维护,并且安装了许多python版本。

在shell中调用>>> import django不会引发ImportError。

我很困惑。请帮帮我!

这是来自控制台的追溯:

Traceback (most recent call last):
  File "manage.py", line 13, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 280, in execute
    translation.activate('en-us')
  File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/__init__.py", line 130, in activate
    return _trans.activate(language)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 188, in activate
    _active.value = translation(language)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 177, in translation
    default_translation = _fetch(settings.LANGUAGE_CODE)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 159, in _fetch
    app = import_module(appname)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 40, in import_module
    __import__(name)
ImportError: No module named django

4 个答案:

答案 0 :(得分:8)

由于您刚刚迁移到UNIX环境,我建议您也迁移到这样的平台上的最佳实践。

  1. 下载PIP

    sudo apt-get install python-pip

  2. 下载并安装virtualenv,为您的应用设置单独的python虚拟环境。这将允许您运行不同风格的django和其他软件而不会发生冲突。

    sudo pip install virtualenv

  3. 通过运行创建虚拟环境。您将获得一个名为myvirtualenvironment的文件夹,其中包含bin文件夹和一些可执行文件。

    virtualenv myvirtualenvironment --no-site-packages

  4. 为了告诉您的shell您正在使用新创建的虚拟环境,您需要运行/myvirtualenvironment/bin/

    中的激活脚本

    source myvirtualenvironment/bin/activate

  5. 现在您可以专门为该虚拟环境安装django。

    pip install djangopip install django==1.6取决于您要安装的版本。如果您没有指定,将安装最新版本。

  6. 现在,在/myvirtualenvironment/内迁移您的Django项目并运行runserver命令。

答案 1 :(得分:2)

有时目录中有一些.pyc文件,您不会从控制台收到任何错误。试图从pip安装Django。

sudo pip install django

最佳做法建议创建requirements.txt文件(从Windows安装)

pip freeze > requirements.txt

然后创建一个新的virutalenv来安装每个包

mkvirtualenv  myapp
pip install -r requirements.txt 

答案 2 :(得分:0)

在遇到相同的错误后,我进入了该页面(在一个网站上,我几个月来一直在积极开发)。对我来说,@ asaji的回答提醒我,我忘记了启动虚拟环境。

启动我的虚拟环境. Scripts/activate后,效果很好!

答案 3 :(得分:0)

对于(MIGHT)很小的问题,这似乎是一项艰巨的工作。

我遇到了这个确切的问题,它有一天在工作,然后第二天就不再工作了。一般来说,我对Linux和Django还是很陌生,但是对python很了解,所以除了“虚拟环境”之外,我真的不知道该在哪里查找

我又开始安装虚拟环境(就像某些人建议的那样),但是不要!

至少在您尝试过并仔细考虑之前,不会:

您是否已将虚拟环境安装为临时环境(您可能是这样安装的:“ pip install pipenv ”?)

如果您做了(就像应该做的那样),您将在当前的django项目中找到2个文件- pipfile pipfile.lock

打开您的终端,cd到那些文件(相同文件夹)的路径

在终端中写入:pipenv shell

BOOM:您刚刚重新激活了“ TEMPORARY”虚拟环境,并且Django可以按预期,将要完成的方式完全正常工作。