AttributeError: модуль 'copy' не имеет атрибута 'deepcopy'

Я на самом деле новичок в Python и BS4. И я решил создать скрипт, который будет чистить веб-сайт, если быть точным, oscarmini.com, код работал нормально до сегодняшнего дня, когда я хотел изменить его, я продолжаю получать ошибки, из-за того, что у меня мало знаний об Исключениях и Ошибках, нет ничего плохого в коде, который, по-видимому, связан с импортом модуля 'bs4'.

from bs4 import BeautifulSoup as BS
import requests
url = 'https://oscarmini.com/2018/05/techfest-2018.html'
page = requests.get(url)
soup = BS(page.text, 'lxml')
mydivs = soup.find("div", {"class": "entry-content"})
soup.find('div', id="dpsp-content-top").decompose()
print(mydivs.get_text())
input()

Ниже приведено сообщение об ошибке, которое я получаю.

Traceback (most recent call last):
    File "C:/Users/USERNaME/Desktop/My Programs/Random/Oscarmini- 
Scrapper.py", line 1, in <module>
    from bs4 import BeautifulSoup as BS
File "C:\Users\USERNaME\AppData\Local\Programs\Python\Python36-32\lib\site-packages\bs4\__init__.py", line 35, in <module>
    import xml.etree.cElementTree as default_etree
File ":\Users\USERNaME\AppData\Local\Programs\Python\Python36-32\lib\xml\etree\cElementTree.py", line 3, in <module>
    from xml.etree.ElementTree import *
File "C:\Users\USERNaME\AppData\Local\Programs\Python\Python36-32\lib\xml\etree\ElementTree.py", line 1654, in <module>
    from _elementtree import *
AttributeError: module 'copy' has no attribute 'deepcopy'

Process finished with exit code 1

Пожалуйста, мне действительно нужна помощь в этом..

3 ответа

Я столкнулся с той же проблемой. И я наконец-то обнаружил, что проблема в том, что у меня есть другой скрипт с именем copy.py и это затеняет оригинал copy модуль.

Вы можете показать реальный путь для модуля копирования с помощью print(copy.__file__) перед тем, как возникнет исключение, и посмотрим, предназначено ли оно.

Вы также можете перечислить переменную окружения PATHONPATH с помощью: print(os.environ['PYTHONPATH'].split(os.pathsep))прямо перед строкой, вызывающей исключение, и посмотрите, есть ли что-то неожиданное.

Убедитесь, что файл copy.py не существует в каталоге вашего проекта... например, Project Folder: copy.py currentOpenFile.py # при импорте модуля копирования...

Моя проблема заключалась в том, что у @liyuanhe211 был локальный язык, но у меня был локальный, и вот что случилось со мной, когда я работал в моем случае:

pysparkпо пути делаяimport copy

но встроенныйcopy.pyделаетfrom org.python.core import PyStringMap

Итак, поскольку у меня был сimport pandas as pd, похоже, по пути это тоже вызываетorg.deepcopy, так что это просто превратилось в циклическую зависимость.

Но да, без моегоorg.py, вот и проблема уходит.

      $ pyspark
Picked up JAVA_TOOL_OPTIONS: -Djavax.net.ssl.trustStoreType=KeychainStore
Python 3.10.11 (main, Apr  7 2023, 07:33:46) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
  File "/Users/hello/Downloads/2023-06-01-spark/spark-3.4.0-bin-hadoop3/python/pyspark/shell.py", line 31, in <module>
    import pyspark
  File "/Users/hello/Downloads/2023-06-01-spark/spark-3.4.0-bin-hadoop3/python/pyspark/__init__.py", line 59, in <module>
    from pyspark.rdd import RDD, RDDBarrier
  File "/Users/hello/Downloads/2023-06-01-spark/spark-3.4.0-bin-hadoop3/python/pyspark/rdd.py", line 18, in <module>
    import copy
  File "/usr/local/Cellar/python@3.10/3.10.11/Frameworks/Python.framework/Versions/3.10/lib/python3.10/copy.py", line 60, in <module>
    from org.python.core import PyStringMap
  File "/Users/hello/Repos/blah/src/org.py", line 2, in <module>
    import pandas as pd
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pandas/__init__.py", line 50, in <module>
    from pandas.core.api import (
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pandas/core/api.py", line 29, in <module>
    from pandas.core.arrays import Categorical
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pandas/core/arrays/__init__.py", line 20, in <module>
    from pandas.core.arrays.string_arrow import ArrowStringArray
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pandas/core/arrays/string_arrow.py", line 65, in <module>
    import pyarrow.compute as pc
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pyarrow/compute.py", line 331, in <module>
    _make_global_functions()
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pyarrow/compute.py", line 328, in _make_global_functions
    g[cpp_name] = g[name] = _wrap_function(name, func)
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pyarrow/compute.py", line 299, in _wrap_function
    return _decorate_compute_function(wrapper, name, func, options_class)
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pyarrow/compute.py", line 165, in _decorate_compute_function
    options_class_doc = _scrape_options_class_doc(options_class)
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pyarrow/compute.py", line 112, in _scrape_options_class_doc
    doc = docscrape.NumpyDocString(options_class.__doc__)
  File "/Users/hello/.python_venvs/pandars310/lib/python3.10/site-packages/pyarrow/vendored/docscrape.py", line 151, in __init__
    self._parsed_data = copy.deepcopy(self.sections)
AttributeError: partially initialized module 'copy' has no attribute 'deepcopy' (most likely due to a circular import)
Другие вопросы по тегам