spyder/conda安装包报错:conda info could not be constructed. KeyError: ‘pkgs_dirs‘

打开conda,报错特征如下:

报错信息

spyder/conda安装包报错:conda info could not be constructed. KeyError: ‘pkgs_dirs‘
打开powershell,输入conda info一通报错。
(base) PS C:\Users\Administrator> conda info

>>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\exceptions.py", line 1082, in __call__
        return func(*args, **kwargs)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\main.py", line 87, in _main
        exit_code = do_call(args, p)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\conda_argparse.py", line 84, in do_call
        return getattr(module, func_name)(args, parser)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\main_info.py", line 317, in execute
        info_dict = get_info_dict(args.system)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\main_info.py", line 163, in get_info_dict
        pkgs_dirs=context.pkgs_dirs,
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\base\context.py", line 530, in pkgs_dirs
        fixed_dirs += user_data_dir(APP_NAME, APP_NAME),
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\_vendor\appdirs.py", line 67, in user_data_dir
        path = os.path.join(_get_win_folder(const), appauthor, appname)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\_vendor\appdirs.py", line 284, in _get_win_folder_with_pywin32
        from win32com.shell import shellcon, shell
    ImportError: DLL load failed while importing shell: &#x627E;&#x4E0D;&#x5230;&#x6307;&#x5B9A;&#x7684;&#x7A0B;&#x5E8F;&#x3002;

$ C:\ProgramData\anaconda3\Scripts\conda-script.py info

An unexpected error has occurred. Conda has prepared the above report.

If submitted, this report will be used by core maintainers to improve
future releases of conda.

Would you like conda to send this report to the core maintainers?

[y/N]: n

No report sent. To permanently opt-out, use

    $ conda config --set report_errors false

安装任意包同样报错。。。。

(base) PS C:\Users\Administrator> conda install pybindll
Collecting package metadata (current_repodata.json): failed
WARNING conda.exceptions:print_unexpected_error_report(1216): KeyError('pkgs_dirs')
Traceback (most recent call last):
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\exceptions.py", line 1082, in __call__
    return func(*args, **kwargs)
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\main.py", line 87, in _main
    exit_code = do_call(args, p)
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\conda_argparse.py", line 84, in do_call
    return getattr(module, func_name)(args, parser)
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\main_install.py", line 20, in execute
    install(args, parser, 'install')
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\install.py", line 260, in install
    unlink_link_transaction = solver.solve_for_transaction(
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 152, in solve_for_transaction
    unlink_precs, link_precs = self.solve_for_diff(update_modifier, deps_modifier,
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 195, in solve_for_diff
    final_precs = self.solve_final_state(update_modifier, deps_modifier, prune, ignore_pinned,
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 300, in solve_final_state
    ssc = self._collect_all_metadata(ssc)
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\common\io.py", line 88, in decorated
    return f(*args, **kwds)
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 463, in _collect_all_metadata
    index, r = self._prepare(prepared_specs)
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 1058, in _prepare
    reduced_index = get_reduced_index(self.prefix, self.channels,
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\index.py", line 288, in get_reduced_index
    new_records = SubdirData.query_all(spec, channels=channels, subdirs=subdirs,
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\subdir_data.py", line 118, in query_all
    create_cache_dir()
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\subdir_data.py", line 876, in create_cache_dir
    cache_dir = join(PackageCacheData.first_writable().pkgs_dir, 'cache')
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\package_cache_data.py", line 151, in first_writable
    pkgs_dirs = context.pkgs_dirs
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\base\context.py", line 530, in pkgs_dirs
    fixed_dirs += user_data_dir(APP_NAME, APP_NAME),
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\_vendor\appdirs.py", line 67, in user_data_dir
    path = os.path.join(_get_win_folder(const), appauthor, appname)
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\_vendor\appdirs.py", line 284, in _get_win_folder_with_pywin32
    from win32com.shell import shellcon, shell
ImportError: DLL load failed while importing shell: &#x627E;&#x4E0D;&#x5230;&#x6307;&#x5B9A;&#x7684;&#x7A0B;&#x5E8F;&#x3002;

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\ProgramData\anaconda3\lib\site-packages\conda\exceptions.py", line 1214, in print_unexpected_error_report
    message_builder.append(get_main_info_str(error_report['conda_info']))
  File "C:\ProgramData\anaconda3\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'

>>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\exceptions.py", line 1082, in __call__
        return func(*args, **kwargs)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\main.py", line 87, in _main
        exit_code = do_call(args, p)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\conda_argparse.py", line 84, in do_call
        return getattr(module, func_name)(args, parser)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\main_install.py", line 20, in execute
        install(args, parser, 'install')
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\cli\install.py", line 260, in install
        unlink_link_transaction = solver.solve_for_transaction(
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 152, in solve_for_transaction
        unlink_precs, link_precs = self.solve_for_diff(update_modifier, deps_modifier,
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 195, in solve_for_diff
        final_precs = self.solve_final_state(update_modifier, deps_modifier, prune, ignore_pinned,
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 300, in solve_final_state
        ssc = self._collect_all_metadata(ssc)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\common\io.py", line 88, in decorated
        return f(*args, **kwds)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 463, in _collect_all_metadata
        index, r = self._prepare(prepared_specs)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\solve.py", line 1058, in _prepare
        reduced_index = get_reduced_index(self.prefix, self.channels,
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\index.py", line 288, in get_reduced_index
        new_records = SubdirData.query_all(spec, channels=channels, subdirs=subdirs,
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\subdir_data.py", line 118, in query_all
        create_cache_dir()
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\subdir_data.py", line 876, in create_cache_dir
        cache_dir = join(PackageCacheData.first_writable().pkgs_dir, 'cache')
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\core\package_cache_data.py", line 151, in first_writable
        pkgs_dirs = context.pkgs_dirs
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\base\context.py", line 530, in pkgs_dirs
        fixed_dirs += user_data_dir(APP_NAME, APP_NAME),
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\_vendor\appdirs.py", line 67, in user_data_dir
        path = os.path.join(_get_win_folder(const), appauthor, appname)
      File "C:\ProgramData\anaconda3\lib\site-packages\conda\_vendor\appdirs.py", line 284, in _get_win_folder_with_pywin32
        from win32com.shell import shellcon, shell
    ImportError: DLL load failed while importing shell: &#x627E;&#x4E0D;&#x5230;&#x6307;&#x5B9A;&#x7684;&#x7A0B;&#x5E8F;&#x3002;

$ C:\ProgramData\anaconda3\Scripts\conda-script.py install pybindll

  environment variables:
conda info could not be constructed.

KeyError('pkgs_dirs')

An unexpected error has occurred. Conda has prepared the above report.

If submitted, this report will be used by core maintainers to improve
future releases of conda.

Would you like conda to send this report to the core maintainers?

[y/N]: n

No report sent. To permanently opt-out, use

    $ conda config --set report_errors false

尝试了很多网上的方法都不行,环境变量也没问题,最后conda重新安装还是不行,最终找到的办法如下:

解决办法:

找到 C:\Users\{&#x7528;&#x6237;&#x540D;}\AppData\Roaming\Python\Python{version}\site-packages这个路径,删除 site-packages这个文件夹,conda报错便消失。

输入 conda info验证:

spyder/conda安装包报错:conda info could not be constructed. KeyError: ‘pkgs_dirs‘
没有问题,说明问题解决。

; 问题分析:

conda安装后,从上面可以看到, conda install自动下载的脚本和安装包是在 C:\ProgramData\anaconda3\pkgs; C:\Users\Administrator\.conda\pkgs; C:\Users\Administrator\AppData\Local\conda\conda\pkgs

而pip安装各种包的默认安装地址是 C:\Users\{&#x7528;&#x6237;&#x540D;}\AppData\Roaming\Python\Python{version}\site-packages&#xFF1B; C:\Users\{&#x7528;&#x6237;&#x540D;}\AppData\Roaming\Python\Python{version}\scripts;这里可以通过 python -m site命令查看:

spyder/conda安装包报错:conda info could not be constructed. KeyError: ‘pkgs_dirs‘
其中USER_BASE和USER_SITE就是python默认通过pip自动下载的脚本和依赖安装包的基础路径。(我这里doesn’t exist是因为我已经删掉这个文件夹了)
然后使用命令 python -m site -help,可以看到
spyder/conda安装包报错:conda info could not be constructed. KeyError: ‘pkgs_dirs‘
说明这个路径配置是在anaconda3\lib\site.py这个文件中。可以对这个进行修改换成自己脚本和包的安装路径。
可以再次使用 python -m site来查看是否替换成功

PS: 多说一句,看conda官方issue中提到,尽量不要使用pip和conda混合安装,因为两种安装方法的二进制编译存在差异,暂时还不清楚和这个有没有关系,但pip和conda最好是常常只用一种方式。

参考资料:

Windows conda ImportError: DLL load failed while importing shell

Original: https://blog.csdn.net/stone_tigerLI/article/details/126051037
Author: 石头变钻石?
Title: spyder/conda安装包报错:conda info could not be constructed. KeyError: ‘pkgs_dirs‘

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/770340/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球