Python请求html引发多处理错误
我正在尝试将我的web抓取程序从使用请求库转移到请求html库,以允许我在网页上呈现javascript。导入模块时会引发此错误:Python请求html引发多处理错误,python,python-3.x,python-requests,multiprocessing,python-requests-html,Python,Python 3.x,Python Requests,Multiprocessing,Python Requests Html,我正在尝试将我的web抓取程序从使用请求库转移到请求html库,以允许我在网页上呈现javascript。导入模块时会引发此错误: Traceback (most recent call last): File "backend2.py", line 2, in <module> import requests_html File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site
Traceback (most recent call last):
File "backend2.py", line 2, in <module>
import requests_html
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/requests_html.py", line 9, in <module>
import pyppeteer
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyppeteer/__init__.py", line 30, in <module>
from pyppeteer.launcher import connect, launch, executablePath # noqa: E402
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyppeteer/launcher.py", line 24, in <module>
from pyppeteer.browser import Browser
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyppeteer/browser.py", line 15, in <module>
from pyppeteer.page import Page
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyppeteer/page.py", line 20, in <module>
from pyppeteer.coverage import Coverage
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyppeteer/coverage.py", line 15, in <module>
from pyppeteer.util import merge_dict
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyppeteer/util.py", line 10, in <module>
from pyppeteer.chromium_downloader import check_chromium, chromium_executable
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyppeteer/chromium_downloader.py", line 15, in <module>
from tqdm import tqdm
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tqdm/__init__.py", line 1, in <module>
from ._tqdm import tqdm
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tqdm/_tqdm.py", line 75, in <module>
mp_lock = mp.RLock() # multiprocessing lock
AttributeError: module 'multiprocessing' has no attribute 'RLock'
回溯(最近一次呼叫最后一次):
文件“backend2.py”,第2行,在
导入请求\u html
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/requests_html.py”,第9行,在
进口皮佩提尔
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyppeteer/_-init___.py”,第30行,在
从pyppeteer.launcher导入连接、启动、可执行路径#noqa:E402
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pyppeteer/launcher.py”,第24行,在
从pyppeteer.browser导入浏览器
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pyppeteer/browser.py”,第15行,在
从pyppeteer.page导入页面
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pyppeteer/page.py”,第20行,在
从pyppeteer.coverage导入coverage
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pyppeteer/coverage.py”,第15行,在
从pyppeteer.util导入合并目录
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pyppeteer/util.py”,第10行,在
从pyppeteer.chromiu下载程序导入检查chromiu,chromiu可执行文件
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/pyppeteer/chromiu downloader.py”,第15行,在
从TQM导入TQM
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/tqdm/__init__.py”,第1行,在
从.\u tqdm导入tqdm
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site packages/tqdm/_tqdm.py”,第75行,在
mp_lock=mp.RLock()#多处理锁
AttributeError:模块“多处理”没有属性“RLock”
感谢您的帮助 您使用的是Python 3.7,但请求html的github声明(页面底部)。当我尝试使用Python3.7时,我会遇到各种可怕的错误,但3.6工作正常。所以,我知道这似乎很奇怪,但请尝试使用3.6
即使如此,正如@georgexsh所说,在3.7中,仍然应该有一个
RLock
可从multiprocessing
导入,因此看起来您的错误实际上可能是您的一个代码文件名为multiprocessing.py
,或者您有自己的名为multiprocessing
的包(因此,您正在导入该模块,而不是您想要的模块)。您的项目中有一个名为多处理的模块。我没有在我的项目中创建任何多处理模块检查多处理。我想这可能有点帮助(使用3.6.6)虽然现在该程序导入失败,因为来自多处理器导入simpleQueue的抛出了一个导入错误:无法导入名称simpleQueue
(我可能会发布另一个与此相关的问题)@S.Allen,这应该是来自多处理导入SimpleQueue的,
对不起,这对我来说是多处理
,我应该使用ctrl-c/v。我还尝试重新安装多处理,但没有任何效果。@S.Allen我真的怀疑您的路径中有另一个名为多处理的模块。如果您使用multiprocessing
作为a_模块
降低此处的说明?我确实这样做了,解决了问题。不知何故,我设法避免了在当前工作目录中向下滚动,其中有一个multiprocessing.py
文件,谢谢。