2014-08-29 2 views
1

나는 장고와 djangoitem을 사용하여 치료 거미를 설정하려고 노력해 왔습니다. 내 거미를 실행하려고하면 item.py는 항상 django 앱의 모델을 가져 오지 못합니다.치료 django 모델 가져 오기 오류

신선한 장고 사이트를 설정하고 https://stackoverflow.com/a/19073347/3988392의 지침을 따른 후 여전히 내 응용 프로그램에서 모델을 가져 오는 데 문제가 있습니다. 모든 것이 그 스레드에 명시된대로 설정되었다고 생각합니다 (mysite가 아닌 testsite라고하는 것을 제외하고 ..).하지만 도움이 될 수 있다고 생각한다면 코드를 게시 할 것입니다.

역 추적 scrapy crawl example을 실행 :

Traceback (most recent call last): 
    File "/usr/bin/scrapy", line 9, in <module> 
    load_entry_point('Scrapy==0.24.4', 'console_scripts', 'scrapy')() 
    File "/usr/lib/pymodules/python2.7/scrapy/cmdline.py", line 143, in execute 
    _run_print_help(parser, _run_command, cmd, args, opts) 
    File "/usr/lib/pymodules/python2.7/scrapy/cmdline.py", line 89, in _run_print_help 
    func(*a, **kw) 
    File "/usr/lib/pymodules/python2.7/scrapy/cmdline.py", line 150, in _run_command 
    cmd.run(args, opts) 
    File "/usr/lib/pymodules/python2.7/scrapy/commands/crawl.py", line 57, in run 
    crawler = self.crawler_process.create_crawler() 
    File "/usr/lib/pymodules/python2.7/scrapy/crawler.py", line 87, in create_crawler 
    self.crawlers[name] = Crawler(self.settings) 
    File "/usr/lib/pymodules/python2.7/scrapy/crawler.py", line 25, in __init__ 
    self.spiders = spman_cls.from_crawler(self) 
    File "/usr/lib/pymodules/python2.7/scrapy/spidermanager.py", line 35, in from_crawler 
    sm = cls.from_settings(crawler.settings) 
    File "/usr/lib/pymodules/python2.7/scrapy/spidermanager.py", line 31, in from_settings 
    return cls(settings.getlist('SPIDER_MODULES')) 
    File "/usr/lib/pymodules/python2.7/scrapy/spidermanager.py", line 22, in __init__ 
    for module in walk_modules(name): 
    File "/usr/lib/pymodules/python2.7/scrapy/utils/misc.py", line 68, in walk_modules 
    submod = import_module(fullpath) 
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/home/myUserName/test-env/testbot/testbot/spiders/example.py", line 3, in <module> 
    from testbot.items import UsefulModelItem 
    File "/home/myUserName/test-env/testbot/testbot/items.py", line 11, in <module> 
    from testapp.models import UsefulModel 
ImportError: No module named testapp.models 

Filetree :

├── testbot 
│   ├── scrapy.cfg 
│   └── testbot 
│    ├── __init__.py 
│    ├── __init__.pyc 
│    ├── items.py 
│    ├── items.pyc 
│    ├── pipelines.py 
│    ├── settings.py 
│    ├── settings.pyc 
│    └── spiders 
│     ├── example.py 
│     ├── example.pyc 
│     ├── __init__.py 
│     └── __init__.pyc 
└── testsite 
    ├── manage.py 
    ├── testapp 
    │   ├── admin.py 
    │   ├── __init__.py 
    │   ├── __init__.pyc 
    │   ├── models.py 
    │   ├── models.pyc 
    │   ├── tests.py 
    │   └── views.py 
    └── testsite 
     ├── __init__.py 
     ├── __init__.pyc 
     ├── settings.py 
     ├── settings.pyc 
     ├── urls.py 
     └── wsgi.py 
+0

시도 – shaktimaan

+0

것 같습니다 있었다처럼 빈'__init __. 나는'실행할 때 생성 py' 파이썬 manage.py의 startApp myapp' 그래서 돈 ' 그것이 틀렸다고 생각하지 않습니다. –

+0

models.py는 어디에 있습니까? 그것은 myapp 폴더 또는 testapp 폴더 아래에 있습니까? –

답변

1

나는 당신이 당신의 장고 프로젝트에 PYTHONPATH를 작성 그리워 생각합니다. 프로젝트가 아니라 앱을 추가하고 있습니다.

testbot에 추가/settings.py를 :

# Setting up django's project full path. 
import sys 
sys.path.insert(0, '/home/TristanTrim/PycharmProjects/testsite') 

# Setting up django's settings module name. 
# This module is located at /home/rolando/projects/myweb/myweb/settings.py. 
import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'testsite.settings' 
1
import sys 
import os 

# 장고의 프로젝트 전체 경로를 설정. testapp` 디렉토리`의 빈`__init __. py` 파일을 포함

sys.path.append('/home/testsite') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'testsite.settings'