下载图片时出现错误:Traceback (most recent call last): File ““, line 1, in error with download_images(dest, urls=search_images(f'{o} photo’))

我编写了这段代码,并且它之前是可以正常工作的。

from duckduckgo_search import DDGSfrom fastcore.all import *def search_images(keywords, max_images=200):    return L(DDGS().images(keywords, max_results=max_images)).itemgot('image')urls = search_images('bird photos', max_images=1)print(urls[0])from fastdownload import download_urldest = 'bird.jpg'download_url(urls[0], dest, show_progress=False)from fastai.vision.all import *im = Image.open(dest)im.to_thumb(256,256)download_url(search_images('forest photos', max_images=1)[0], 'forest.jpg', show_progress=False)Image.open('forest.jpg').to_thumb(256,256)searches = 'forest','bird'path = Path('bird_or_not')

我添加了以下代码:

from time import sleepfor o in searches:    dest = (path/o)    dest.mkdir(exist_ok=True, parents=True)    download_images(dest, urls=search_images(f'{o} photo'))    sleep(10)  # 在搜索之间暂停以避免过载服务器    download_images(dest, urls=search_images(f'{o} sun photo'))    sleep(10)    download_images(dest, urls=search_images(f'{o} shade photo'))    sleep(10)    resize_images(path/o, max_size=400, dest=path/o)

然后得到了以下错误:

Traceback (most recent call last):  File "<string>", line 1, in <module>  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\spawn.py", line 122, in spawn_main    exitcode = _main(fd, parent_sentinel)               ^^^^^^^^^^^^^^^^^^^^^^^^^^  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\spawn.py", line 131, in _main    prepare(preparation_data)  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\spawn.py", line 246, in prepare    _fixup_main_from_path(data['init_main_from_path'])  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\spawn.py", line 297, in _fixup_main_from_path    main_content = runpy.run_path(main_path,                   ^^^^^^^^^^^^^^^^^^^^^^^^^  File "<frozen runpy>", line 286, in run_path  File "<frozen runpy>", line 98, in _run_module_code  File "<frozen runpy>", line 88, in _run_code  File "C:\Users\crist\PycharmProjects\AI Deep Learning\main.py", line 23, in <module>    download_images(dest, urls=search_images(f'{o} photo'))  File "C:\Users\crist\PycharmProjects\Complaint Bot\.venv\Lib\site-packages\fastai\vision\utils.py", line 44, in download_images    parallel(partial(_download_image_inner, dest, timeout=timeout, preserve_filename=preserve_filename),  File "C:\Users\crist\PycharmProjects\Complaint Bot\.venv\Lib\site-packages\fastcore\parallel.py", line 130, in parallel    r = ex.map(f,items, *args, timeout=timeout, chunksize=chunksize, **kwargs)        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "C:\Users\crist\PycharmProjects\Complaint Bot\.venv\Lib\site-packages\fastcore\parallel.py", line 85, in map    if self.not_parallel == False: self.lock = Manager().Lock()                                               ^^^^^^^^^  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\context.py", line 57, in Manager    m.start()  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\managers.py", line 562, in start    self._process.start()  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\process.py", line 121, in start    self._popen = self._Popen(self)                  ^^^^^^^^^^^^^^^^^  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\context.py", line 337, in _Popen    return Popen(process_obj)           ^^^^^^^^^^^^^^^^^^  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\popen_spawn_win32.py", line 46, in __init__    prep_data = spawn.get_preparation_data(process_obj._name)                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  File "C:\Users\crist\AppData\Local\Programs\Python\Python312\Lib\multiprocessing\spawn.py", line 164, in get_preparation_data    _check_not_importing_main()

。有人能解释一下为什么会发生这种情况,以及我该如何修复和避免它吗?

我尝试重新下载库,但不知为何无法更新pip。我还尝试使用调试器,但没有结果。我还尝试通过任务管理器关闭其他应用程序,但这不是问题所在。


回答:

你可以尝试以下方法,将脚本的主要逻辑包装在以下代码中:

if __name__ == '__main__':

因为Windows默认等待spawn方法而不是并行处理。我在使用selenium时也遇到了类似的问题,尝试了这个解决方案,并且对我有效。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注