2017-02-13 38 views
0

我似乎无法让我的manage.py脚本识别django模块。 pip install req/dev.txt将我期望的所有模块安装到我的python虚拟环境中(存​​储在.venv中)。Python manage.py ImportError:没有名为django的模块

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

我不幸处于亏损状态。我已经通过Stack Overflow搜索了十几个相关的问题,并且尚未找到可行的解决方案。有没有人有任何线索指向正确的方向?

错误消息:

:请求数/ dev.txt

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

内容请求数的/ 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的内容的

$ 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 

内容

#!/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) 
+3

你应该为你的开发创建一个virtualenv,这样做(并使用它)应该解决你的问题 – Sayse

+1

谢谢 - 虽然我确实有一个venv运行,我意识到我应该验证它正在使用(它是) ,这让我意识到我应该深入到堆栈跟踪中,并开始打印某些东西来调试哪些输入事件正在破坏。这导致我的解决方案,写在下面!谢谢 –

回答

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/中的文件,并且我已关闭并正在运行!

相关问题