【发布时间】:2014-08-29 03:53:27
【问题描述】:
我一直在尝试使用 django 和 djangoitem 设置一个爬虫蜘蛛。当我尝试运行我的蜘蛛时,item.py 总是无法导入 django 应用程序的模型。
我建立了一个新的 django 站点并按照 https://stackoverflow.com/a/19073347/3988392 的说明进行操作,但我仍然无法从我的应用程序导入模型。我认为一切都按照该线程中的说明进行设置(除了我将事物称为 testsite 而不是 mysite 等。)但如果有人认为它可能有帮助,我会发布代码。
运行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
文件树:
├── 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
【问题讨论】:
-
尝试在
testapp目录中包含一个空的__init__.py文件 -
当我运行
python manage.py startapp myapp时,似乎创建了一个空的__init__.py,所以我认为这没有什么问题。 -
你的models.py在哪里?是在myapp文件夹下还是testapp文件夹下?
-
添加了文件树。 models.py 正在 testapp 中(Rho 教程中的 myapp)
标签: python django django-models scrapy importerror