ModuleNotFoundError:没有名为' xyz'的模块

时间:2017-07-29 00:17:24

标签: django python-3.x

运行Python3.6.2。我在process_sqs_messages.py中的代码直到第3行:

__author__ = 'Chris'
import boto3
from xyz.settings import SQS_QUEUE_NAME

这是我的stacktrace:

Traceback (most recent call last):
File "bin/process_sqs_messages.py", line 3, in <module>
  from xyz.settings import SQS_QUEUE_NAME
ModuleNotFoundError: No module named 'xyz'

目录结构:

Project
|    
+-- bin
|  |
|  +-- process_sqs_messages.py
|    
+-- xyz
|  |  
|  +-- __init__.py
|  +-- settings.py

我已安装的应用:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xyz',
]

任何人都知道我为什么会收到此错误?

2 个答案:

答案 0 :(得分:0)

来自Django docs

  

请注意,django.conf.settings不是模块 - 它是一个对象。所以   无法导入个人设置

from django.conf.settings import DEBUG  # This won't work.

你必须像这样访问设置模块

 from django.conf import settings

    if settings.DEBUG:
        # Do something

答案 1 :(得分:0)

我得到了它,但我不知道为什么。希望有人可以解决这个问题。我正在浏览网页试图修复此错误,这就是我所做的/找到的。

我首先在项目级别创建了一个setup.py文件,所以

Project
|    
+-- setup.py

然后我将此代码添加到setup.py文件

#!/usr/bin/env python

from distutils.core import setup

setup(name='xyz',
  version='0.1.0',
  description='XYZ',
  author='Chris',
  author_email='none@none.com',
  url='http://www.none.com/',
  packages=['xyz', ],
  )

然后我运行python setup.py install和(这里是我迷路的地方)它安装了包。它在我的virtualenv下创建了一个构建目录,egg信息,站点包等等。

最后我运行了我的命令python bin/process_sqs_messages.py并且它成功了。没有错误。

如果你能帮助我和其他人,请评论/解释我的所作所为,因为我不能:/