【发布时间】:2019-06-14 17:25:17
【问题描述】:
我的BaseScraper.py 有:
class BaseScraper:
def __init__(self, page=0, min_code_size=300):
self.page = page
self.MIN_CODE_SIZE = min_code_size
...
我的JSScraper.py 有:
from BaseScraper import BaseScraper
class JSScraper(BaseScraper):
def __init__(self):
super(self).__init__(*args)
而我的jsscraper.py(运行它)有:
from Scraper import JSScraper
scraper = JSScraper.JSScraper(page=0)
所以当我运行jsscraper.py 时,我得到:
ModuleNotFoundError: No module named 'BaseScraper'
我不完全明白我应该如何构建这些项目以正确导入和处理类。任何帮助将不胜感激。
【问题讨论】:
-
当您在项目的顶层目录中运行
python jsscraper.py时,该目录将被放入sys.path。这意味着在查找 python 包时将搜索当前目录。需要注意的是,当您从其他地方(例如python a/b/c/jsscript.py)调用jsscript.py时,添加到sys.path的路径仍然是带有jsscript.py的目录,而不是您调用python的目录。这可能会令人困惑。要调试您的问题,请打印sys.path的内容并检查Scraper目录是否在其中列出的目录之一中。
标签: python class python-import