You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在macOS Sierra用PyCharm运行fastparquet测试遇_PyClass_Type缺失错误

解决fastparquet在macOS Sierra下的_PyClass_Type导入错误

这个错误的根源很明确——_PyClass_Type是Python 2.x专属的内部符号,Python 3.x已经彻底移除了它。你遇到的问题说明fastparquet的speedups.so扩展模块是用Python 2环境编译的,哪怕你装了boost-python3,编译过程大概率没正确关联到Python 3的依赖。下面是一步步的解决方法:

  • 确认PyCharm使用的是Python 3解释器
    打开PyCharm,进入Preferences > Project: [你的项目名] > Python Interpreter,检查当前选中的解释器是否为Python 3.x版本(macOS Sierra默认自带Python 2.7,很容易被误选)。如果不是,点击齿轮图标添加正确的Python 3解释器(可以是brew安装的或者pyenv管理的版本)。

  • 彻底清理并重新编译fastparquet

    1. 先卸载已安装的fastparquet:
      pip uninstall -y fastparquet
      
    2. 如果是从本地源码编译,先清理之前的编译缓存:
      rm -rf /Users/dhaviv/Documents/GitHub/fastparquet/build
      
    3. 用Python 3的pip重新安装,强制从源码编译(避免使用预编译的二进制包):
      pip3 install --no-binary :all: fastparquet
      
    4. 如果是本地源码编译,手动指定boost-python3的路径(brew安装的boost-python3通常在/usr/local下):
      export BOOST_INCLUDEDIR=/usr/local/include/boost/python3
      export BOOST_LIBRARYDIR=/usr/local/lib
      python3 setup.py clean build install
      
  • 验证编译后的模块依赖
    用otool检查speedups.so的关联库,确认它指向Python 3:

    otool -L /Users/dhaviv/Documents/GitHub/fastparquet/fastparquet/speedups.so
    

    输出里应该看到类似/Library/Frameworks/Python.framework/Versions/3.x/Python的路径,而不是Python 2的框架路径。

  • 对齐PyCharm和终端的环境变量
    有时候PyCharm的环境变量和终端不一致,导致编译时用了错误的Python版本。可以在Run > Edit Configurations里检查Environment variables,确保Python 3的路径排在Python 2之前;或者直接在PyCharm内置终端里执行编译命令,确保使用的是项目关联的Python 3解释器。

内容的提问来源于stack exchange,提问作者Daniel Haviv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:25:13