Python manage.py ImportError:没有名为django

时间:2017-02-13 13:08:05

标签: python django

我似乎无法获得我的manage.py脚本来识别django模块。 pip install req / dev.txt将我希望它的所有模块安装到我的python虚拟环境中(存​​储在.venv中)。

我认为我已将其缩小到我的$ PYTHON_PATH或我的pip要求文件的问题。我已经通过sys.path循环了,我看到其中一个值指向.venv中的一个文件夹,我可以确认它包含django模块。

我很遗憾不知所措。我已经在Stack Overflow上搜索了十几个相关问题,但还没有找到有效的解决方案。有没有人有任何线索指出我正确的方向?

错误讯息:

$ python manage.py syncdb

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/nathan/www/myapp/.venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/Users/nathan/www/myapp/.venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 312, in execute
    django.setup()
  File "/Users/nathan/www/myapp/.venv/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/nathan/www/myapp/.venv/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/Users/nathan/www/myapp/.venv/lib/python2.7/site-packages/django/apps/config.py", line 119, in create
    import_module(entry)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named django

reqs / dev.txt的内容

-r common.txt
django-debug-toolbar==1.3.2

reqs / common.txt的内容

django==1.8
Fabric==1.10.2
ShopifyAPI>=2.1.5
Sphinx==1.3.1
celery>=3.1.20
django-compressor>=1.5
django-toolbelt>=0.0.1
jdcal>=1.0
kombu>=3.0.35
openpyxl==2.2.5
python-dateutil>=2.4.2
psycopg2>=2.5
requests==2.7.0
whitenoise==2.0
shippo==1.4.0

manage.py的内容:

#!/usr/bin/env python
import os
import sys    

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings.dev")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

1 个答案:

答案 0 :(得分:2)

经过一夜安眠后问题解决了。

问题是我的INSTALLED_APPS引用了kombu.transport.django,这似乎是我们为芹菜添加的完全不必要的依赖。有关详细信息,请访问:Celery, kombu and django - import error

我如何发现解决方案,以防调试技术帮助其他人:

我开始潜入堆栈跟踪。我(暂时)修改了.venv/中的文件,为输入变量添加了打印语句,直到我在populate()中的.venv/lib/python2.7/site-packages/django/apps/registry.py找到了我的第一条线索

通过populate()中的每个条目进行打印,可以让我看到正在破坏的软件包是kombu.transport.django而不是django模块。从我的INSTALLED_APPS中删除该条目解决了这个问题。

要清理我通过删除我的打印语句恢复了.venv/中的文件,我已经关闭并运行了!