lxkeepcoding 2024-04-04 13:48 采纳率: 50%
浏览 34

joblib编码问题

使用joblib报错是这样的要怎么解决哇

D:\anaconda\python.exe C:/luxin/hate/demo/08-joblib.py
Traceback (most recent call last):
  File "C:\luxin\hate\demo\08-joblib.py", line 38, in <module>
    test()
  File "C:\luxin\hate\demo\08-joblib.py", line 34, in test
    parallel(tasks)
  File "D:\anaconda\lib\site-packages\joblib\parallel.py", line 968, in __call__
    n_jobs = self._initialize_backend()
  File "D:\anaconda\lib\site-packages\joblib\parallel.py", line 735, in _initialize_backend
    n_jobs = self._backend.configure(n_jobs=self.n_jobs, parallel=self,
  File "D:\anaconda\lib\site-packages\joblib\_parallel_backends.py", line 494, in configure
    self._workers = get_memmapping_executor(
  File "D:\anaconda\lib\site-packages\joblib\executor.py", line 20, in get_memmapping_executor
    return MemmappingExecutor.get_memmapping_executor(n_jobs, **kwargs)
  File "D:\anaconda\lib\site-packages\joblib\executor.py", line 42, in get_memmapping_executor
    manager = TemporaryResourcesManager(temp_folder)
  File "D:\anaconda\lib\site-packages\joblib\_memmapping_reducer.py", line 531, in __init__
    self.set_current_context(context_id)
  File "D:\anaconda\lib\site-packages\joblib\_memmapping_reducer.py", line 535, in set_current_context
    self.register_new_context(context_id)
  File "D:\anaconda\lib\site-packages\joblib\_memmapping_reducer.py", line 560, in register_new_context
    self.register_folder_finalizer(new_folder_path, context_id)
  File "D:\anaconda\lib\site-packages\joblib\_memmapping_reducer.py", line 590, in register_folder_finalizer
    resource_tracker.register(pool_subfolder, "folder")
  File "D:\anaconda\lib\site-packages\joblib\externals\loky\backend\resource_tracker.py", line 191, in register
    self._send('REGISTER', name, rtype)
  File "D:\anaconda\lib\site-packages\joblib\externals\loky\backend\resource_tracker.py", line 204, in _send
    msg = '{0}:{1}:{2}\n'.format(cmd, name, rtype).encode('ascii')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 18-19: ordinal not in range(128)



  • 写回答

4条回答 默认 最新

  • GISer Liu 2024-04-04 15:35
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    这个报错是由于joblib在处理文件路径时尝试使用ascii编码,但是路径中包含非ascii字符,导致编码错误。解决这个问题的方法是在joblib的源码中找到相关的编码处,修改为使用适合的编码方式,比如``` utf-8

    具体的解决方案如下:
    1. 打开``` D:\anaconda\lib\site-packages\joblib\externals\loky\backend\resource_tracker.py ```文件。
    2. 找到``` _send ```方法,该方法位于约204行左右。
    3. 修改``` encode('ascii') ```为``` encode('utf-8') ```。
    修改后的代码应该是这样的:
    pythonCopy code
    

    msg = '{0}:{1}:{2}\n'.format(cmd, name, rtype).encode('utf-8')

    这样就解决了 UnicodeEncodeError ```的问题。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    评论

报告相同问题?

问题事件

  • 创建了问题 4月4日