简体   繁体   English

导入 python 模块时出现多个错误 - ModuleNotFoundError 和 ImportError

[英]Multiple errors while import python module - ModuleNotFoundError and ImportError

I receive multiple import errors.我收到多个导入错误。 My directory looks like that:我的目录看起来像这样:

scraping
└── tool_scrapy
    ├── __init__.py
    ├── items.py
    ├── middlewares
    ├── * other scrapy files *
    └── spiders
       ├── my_spider.py
       └── run_my_spider.py

run_my_spider.py run_my_spider.py

from __future__ import absolute_import
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from tool_scrapy.spiders.my_spider import my_spiderSpider

process = CrawlerProcess(get_project_settings())
process.crawl(CARSPLotomotoSpider)
process.start()

I receive many error no matter how I am trying to write my fourth line:无论我如何尝试编写我的第四行,我都会收到很多错误:

from tool_scrapy.spiders.my_spider import my_spiderSpider

I am getting:我正进入(状态:

ModuleNotFoundError: No module named 'tool_scrapy'

Or when I add "."或者当我添加“。” before I am getting:在我得到:

ImportError: attempted relative import with no known parent package

I have already tried this things:我已经尝试过这些事情:

from tool_scrapy.spiders.my_spider import my_spiderSpider
from .tool_scrapy.spiders.my_spider import my_spiderSpider
from spiders.my_spider import my_spiderSpider
from .spiders.my_spider import my_spiderSpider
from scraping.tool_scrapy.spiders.my_spider import my_spiderSpider
from .scraping.tool_scrapy.spiders.my_spider import my_spiderSpider

I have tried adding main .py, I have tried adding init .py in various places, still nothing.我试过添加main .py,我试过在不同的地方添加init .py,仍然没有。

Also, pycharm is proposing me this first solution (and after adding "." pycharm is correctly proposing me next modules. Yet still, when I try to run it I receive this errors.此外,pycharm 向我提出了第一个解决方案(在添加“.”之后,pycharm 正确地向我提出了下一个模块。然而,当我尝试运行它时,我收到了这个错误。

What can I try next to resolve this?接下来我可以尝试什么来解决这个问题?

Edit编辑

my_spider.py: my_spider.py:

from tool_scrapy.items import SpiderItem

Here I also tried many similar options, always hitting the same errors.在这里,我也尝试了许多类似的选项,但总是遇到相同的错误。

This code helped me:这段代码帮助了我:

import inspect
import os
import sys

current_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parent_dir = os.path.dirname(current_dir)
sys.path.insert(0, parent_dir)

If anyone could explain me why, I would be very happy.如果有人能解释我为什么,我会很高兴。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM