繁体   English   中英

manage.py - 导入错误:没有名为 django 的模块

[英]manage.py - ImportError: No module named django

我只是通过将所有文件复制到/var/www/some/dir/djangoApp将一个工作 django 应用程序从 Windows 系统移植到 ubuntu 。 但是现在,当执行

python manage.py runserver 8080

我收到错误:

ImportError: no module named django

我已经使用python setup.py install安装了新版本的 django 到/usr/local/lib/python2.7/dist-packages/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

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

  1. 下载画中画

    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/的 activate 脚本

    source myvirtualenvironment/bin/activate

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

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

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

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

sudo pip install django

最佳实践建议创建一个 requirements.txt 文件(来自您的 Windows 安装)

pip freeze > requirements.txt

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

mkvirtualenv  myapp
pip install -r requirements.txt 

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

启动我的 Virtual Env 后. Scripts/activate . Scripts/activate效果很好!

对于(可能)非常小的问题来说,这似乎是一项相当大的工作。

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

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

至少在您尝试过并考虑一下之前不会:

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

如果你做了(就像你应该做的那样),你将在当前的 django 项目 2 文件周围有一个地方 - pipfile & pipfile.lock

打开你的终端,cd到这些文件的路径(同一个文件夹)

在终端中写入:pipenv shell

BOOM:您刚刚重新激活了“TEMPORARY”虚拟环境,Django 完全按照预期、意愿和做了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM