在我的项目中,我主要有 3 个独立的文件。我的项目目录
Directory/
|-main.py
|-scrape/
|--ScrapeFactory.py
|--ScrapeFromAmazon.py
ScrapeFactory.py 包括
from abc import ABC, abstractmethod
from .ScrapeFromAmazon import ScrapeFromAmazon
class Scrape(ABC):
def __init__(self):
print("ScrapeFactory initialized")
"""Abstract Factory Interface"""
@abstractmethod
def create_scrape_products_from_category(self, url, header):
pass
class ScrapeFactory(ABC):
"""
The factory represents combination of scrape product
from category and scrape product from product detail page.
"""
@abstractmethod
def create_scrape_products_from_category(self) -> Scrape:
"""
Returns a new scrape product from
category belonging to this factory.
"""
pass
此外,ScrapeFromAmazon.py 还包括
from bs4 import BeautifulSoup
import requests
import pandas as pd
import numpy as np
from .ScrapeFactory import ScrapeFactory
class ScrapeFromAmazon(ScrapeFactory):
"""
Factory aimed at scraping products from Amazon
"""
def calculate_iterate_page_count(self):
response = requests.get(self.url, headers=self.header)
soup = BeautifulSoup(response.content, 'html.parser')
product_number_div = soup.find('div', class_='paginatorStyle-OQbSBb_oQve3e_k9LEg5').text
product_number = product_number_div.split(" ")[3]
if product_number.find("+"):
product_number = product_number[:len(product_number)-1]
self.iterate_page_count = int(int(product_number) / 48)
我的Python版本:
Python 3.12.2
当我运行代码时,出现错误:
ImportError: cannot import name 'ScrapeFactory' from partially initialized module 'scrape.ScrapeFactory' (most likely due to a circular import)
如何解决?
我尝试init.py,
您遇到了循环导入。
ScrapeFactory.py
正在导入 ScrapeFromAmazon
,但 ScrapeFromAmazon.py
也从 ScrapeFactory.py
导入。
这会导致 python 无法解析的循环依赖。