问题说明

使用PYCHARM调试/运行程序时,出现"Ninja is required to load C++ extensions",但是已经确保了在该运行环境下安装了ninja,还是出错,而且在bash环境下运行不报错,只有在点击运行或者debug按钮的时候报错
在这里插入图片描述
根据报错文件位置,确认报错代码:

def is_ninja_available():
    r'''
    Returns ``True`` if the `ninja <https://ninja-build.org/>`_ build system is
    available on the system, ``False`` otherwise.
    '''
    try:
        subprocess.check_output('ninja --version'.split())
    except Exception:
        return False
    else:
        return True

可以看到,验证ninja是否可行,是根据执行ninja --version得到的,也就是说执行的环境下没有ninja的安装路径;

  • 解决办法1,在.py脚本下确定ninja的路径,可以在conda虚拟环境下查看ninja的路径
  • 在这里插入图片描述
    将该路径写如环境变量,在所有指令执行前添加
import os
os.environ["PATH"] = os.environ["PATH"] + ":/dirname/to/ninja/in/conda/bin"
  • 解决办法2, 在PYCHARM执行脚本下添加
    右键 → \rightarrow More Run/Debug → \rightarrow Modify Run Configuration
    点开控制面板后,点击Configuration下的Environment,找到Environment variables,修改环境变量
    在这里插入图片描述
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐