2015-12-07 91 views
0

我照着教程創建了一個項目,當我運行測試,似乎來創建測試數據庫並運行該腳本,但我得到一個錯誤Django的測試導入錯誤:沒有模塊名爲「taskbuster.unittests」

ImportError: No module named 'taskbuster.module_name' 

我已經更改了virtualenvwrapper postactivate中的設置。只會讓事情變得更糟,這意味着測試並沒有開始。 我已經改變了base.py設置文件中的路徑,但這也只會讓事情變得更糟。

├── db.sqlite3 
├── functional_tests 
│   ├── __init__.py 
│   └── test_all_users.py 
├── __init__.py 
├── manage.py 
├── taskbuster 
│   ├── __init__.py 
│   ├── settings 
│   │   ├── base.py 
│   │   ├── development.py 
│   │   ├── __init__.py 
│   │   ├── production.py 
│   │   └── testing.py 
│   ├── urls.py 
│   ├── views.py 
│   └── wsgi.py 
└── unittests 
    ├── admin.py 
    ├── __init__.py 
    ├── migrations 
    │   ├── __init__.py 
    │   └── __pycache__ 
    │    └── __init__.cpython-34.pyc 
    ├── models.py 
    ├── __pycache__ 
    │   ├── admin.cpython-34.pyc 
    │   ├── __init__.cpython-34.pyc 
    │   └── models.cpython-34.pyc 
    ├── tests.py 
    └── views.py 

這是設置/ base.py的INSTALLED_APPS內容

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'unittests', 
) 

testing.py

# -*- coding: utf-8 -*- 
from .base import * 
DEBUG = True 

wsgi.py

import os  
from django.core.wsgi import get_wsgi_application  
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "taskbuster.settings")  
application = get_wsgi_application() 

manage.py

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

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "taskbuster.settings")  
    from django.core.management import execute_from_command_line  
    execute_from_command_line(sys.argv) 

postactivate在tb_test

#!/bin/bash 
# This hook is sourced after this virtualenv is activated. 
export DJANGO_SETTINGS_MODULE="taskbuster.settings.testing" 
export SECRET_KEY="" (Secretkey has a value in the actual code) 

predeactivate在tb_test

#!/bin/bash 
# This hook is sourced before this virtualenv is deactivated. 
unset DJANGO_SETTINGS_MODULE 
unset SECRET_KEY 

我已經激活tb_test

$ workon tb_test 

然後我運行Python測試

$python manage.py test 

本教程實際上與functional_tests一起工作,但由於沒有工作,我創建了一個Django應用程序unittests,所以這就是爲什麼它們都在那裏。

我希望有人能幫忙解決這個問題。

在此先感謝。

回答

0

會發生什麼是每個目錄下的傢伙不知道其他目錄。導入無法在目錄層次結構中查找。

你可以做的是教的Python到哪裏尋找庫與

export PYTHONPATH=$PYTHONPATH:/path/to/project 

這是「低級別」的方式,雖然。應該有適當的設置來解決這個問題。

相關問題