You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows 10下pip默认调用Python 3.8.3而非3.9.6导致pandas-datareader安装失败的问题排查与解决

解决Windows 10下pip install pandas-datareader安装失败的问题

问题分析

从你的操作过程和报错信息来看,核心问题出在系统优先调用了存在文件损坏的Python 3.8版本——虽然你安装了Python 3.9.6,但PATH环境变量中Python 3.8的优先级更高,导致执行pip时还是会触发3.8版本的runpy.py,而WindowsApps文件夹下的该文件存在空字节错误,且权限限制无法直接修复。

你遇到的具体报错:

N:\>cd onedrive
N:\OneDrive>cd python
N:\OneDrive\python>pip install pandas-datareader
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.2800.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 185, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.2800.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 144, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.2800.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 155, in _get_module_details
    code = loader.get_code(mod_name)
  File "<frozen importlib._bootstrap_external>", line 981, in get_code
  File "<frozen importlib._bootstrap_external>", line 911, in source_to_code
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ValueError: source code string cannot contain null bytes

解决步骤

按照以下操作即可彻底解决问题:

  1. 卸载存在问题的Python 3.8版本

    • 打开Windows 10的「设置」→「应用和功能」
    • 在应用列表中找到64位的Python 3.8(包含系统预装版本和你之前安装的版本),点击卸载完成移除——这个操作会同时清理WindowsApps里的相关文件。
  2. 调整PATH环境变量指向Python 3.9.6

    • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
    • 用户变量PATH条目里,添加C:\Program Files\Python39\Scripts(这是你安装的Python 3.9.6的Scripts目录,pip命令就在这里),并将其移动到PATH列表的最上方,确保优先级最高。
    • 保存设置后,关闭所有打开的终端窗口,重新打开一个新终端使环境变量生效。
  3. 验证修复效果

    • 在新终端中执行pip --version,确认输出显示的是Python 3.9.6版本
    • 再次执行pip install pandas-datareader,此时命令就能正常运行并完成安装了。

内容的提问来源于stack exchange,提问作者Neil Taylor

火山引擎 最新活动