报错信息
有一天准备用conda配置新的环境,结果conda突然各种报错,怎么都装不了。(我conda环境装在了 `D:\Software\Anaconda`)
ARNING conda.exceptions:print_unexpected_error_report(1257): KeyError('pkgs_dirs') Traceback (most recent call last): File "D:\Softwares\Anaconda\lib\site-packages\conda\exceptions.py", line 1125, in __call__ return func(*args, **kwargs) File "D:\Softwares\Anaconda\lib\site-packages\conda\cli\main.py", line 86, in main_subshell exit_code = do_call(args, p) File "D:\Softwares\Anaconda\lib\site-packages\conda\cli\conda_argparse.py", line 93, in do_call return getattr(module, func_name)(args, parser) File "D:\Softwares\Anaconda\lib\site-packages\conda\notices\core.py", line 72, in wrapper return_value = func(*args, **kwargs) File "D:\Softwares\Anaconda\lib\site-packages\conda\cli\main_create.py", line 23, in execute if is_conda_environment(context.target_prefix): File "D:\Softwares\Anaconda\lib\site-packages\conda\base\context.py", line 612, in target_prefix return determine_target_prefix(self) File "D:\Softwares\Anaconda\lib\site-packages\conda\base\context.py", line 1800, in determine_target_prefix return validate_prefix_name(prefix_name, ctx=ctx) File "D:\Softwares\Anaconda\lib\site-packages\conda\base\context.py", line 1761, in validate_prefix_name return locate_prefix_by_name(prefix_name) File "D:\Softwares\Anaconda\lib\site-packages\conda\base\context.py", line 1726, in locate_prefix_by_name envs_dirs = context.envs_dirs File "D:\Softwares\Anaconda\lib\site-packages\conda\base\context.py", line 538, in envs_dirs return mockable_context_envs_dirs(self.root_writable, self.root_prefix, self._envs_dirs) File "D:\Softwares\Anaconda\lib\site-packages\conda\base\context.py", line 110, in mockable_context_envs_dirs fixed_dirs += join(user_data_dir(APP_NAME, APP_NAME), 'envs'), File "D:\Softwares\Anaconda\lib\site-packages\conda\_vendor\appdirs.py", line 67, in user_data_dir path = os.path.join(_get_win_folder(const), appauthor, appname) File "D:\Softwares\Anaconda\lib\site-packages\conda\_vendor\appdirs.py", line 265, in _get_win_folder_with_pywin32 from win32com.shell import shellcon, shell ImportError: DLL load failed while importing shell: The specified procedure could not be found. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:\Softwares\Anaconda\lib\site-packages\conda\exceptions.py", line 1255, in print_unexpected_error_report message_builder.append(get_main_info_str(error_report['conda_info'])) File "D:\Softwares\Anaconda\lib\site-packages\conda\cli\main_info.py", line 237, in get_main_info_str info_dict['_' + key] = ('\n' + 26 * ' ').join(info_dict[key]) KeyError: 'pkgs_dirs'
百思不得其解。这里提供两个可能有用的网址。
https://github.com/conda/conda/issues/9356
最终的解决方案
遵循上面的第一个链接的提示以及我最近配置vscode的情况,主要是通过以下几个步骤解决。
- 由于我之前vscode也安装了新的python,默认路径在user/Appdata下,我当时还为其设置了环境path。首先我们要讲这个路径的环境path删除,要不然这会导致在conda中的pip install指令全部都默认装到该python的site-packages目录下。默认是在AppData/Roaming/Python/下。
- 安装pywin32包,我按照第一个链接的指示,安装了 pip install pywin32=300,顺带装了个pip install pathli
装完之后就突然可以了,有点小神奇。
结论:捣鼓其他东西的时候记得不要乱给权限。