Python 请求-html 抛出多处理错误

Python requests-html throwing multiprocessing error

我正在尝试将我的网络抓取程序从使用请求库转移到请求-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-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'

感谢任何帮助!

您正在使用 Python 3.7,但是请求的 github-html 指出 only Python 3.6 is supported(页面底部)。当我尝试使用 Python 3.7 但 3.6 工作正常时,我遇到了各种可怕的错误。所以,我知道这看起来很奇怪,但请尝试使用 3.6

即便如此,正如@georgexsh 所述,在 3.7 中仍然应该有一个 RLock 可用于从 multiprocessing 导入,因此看起来您的错误实际上可能是您的代码文件之一是称为 multiprocessing.py 或您有自己的包 multiprocessing (因此您正在导入它而不是您想要的模块)。