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)