当前位置: 首页 > 知识库问答 >
问题:

pip3安装PyYAML失败。(python3.7,macOS High Sierra)

令狐晟
2023-03-14

今天,我用brew upgrade命令升级了python3.7。

我尝试使用pip3安装PyYAML包。

我有这个错误,不知道。。

% pip3 install PyYAML

    checking if libyaml is linkable
    clang build/temp.macosx-10.13-x86_64-3.7/check_libyaml.o -L/usr/local/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/sqlite/lib -lyaml -o build/temp.macosx-10.13-x86_64-3.7/check_libyaml
    building '_yaml' extension
    creating build/temp.macosx-10.13-x86_64-3.7/ext
    clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c ext/_yaml.c -o build/temp.macosx-10.13-x86_64-3.7/ext/_yaml.o
    In file included from ext/_yaml.c:271:
    ext/_yaml.h:10:9: warning: 'PyString_CheckExact' macro redefined [-Wmacro-redefined]
    #define PyString_CheckExact PyBytes_CheckExact
            ^
    ext/_yaml.c:139:11: note: previous definition is here
      #define PyString_CheckExact          PyUnicode_CheckExact
              ^
    ext/_yaml.c:1410:17: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      __pyx_v_value = yaml_get_version_string();
                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
    ext/_yaml.c:2577:52: warning: incompatible pointer types passing 'int (void *, char *, size_t, size_t *)' (aka 'int (void *, char *, unsigned long, unsigned long *)') to parameter of type 'yaml_read_handler_t *' (aka 'int (*)(void *, unsigned char *, unsigned long, unsigned long *)') [-Wincompatible-pointer-types]
        yaml_parser_set_input((&__pyx_v_self->parser), __pyx_f_5_yaml_input_handler, ((void *)__pyx_v_self));
                                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/local/include/yaml.h:1370:30: note: passing argument to parameter 'handler' here 

....... 

最后

    /usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/include/python3.7m/pystate.h:238:15: note: 'curexc_traceback' declared here
        PyObject *curexc_traceback;
                  ^
    51 warnings and 15 errors generated.
    error: command 'clang' failed with exit status 1

    ----------------------------------------
Command "/usr/local/opt/python/bin/python3.7 -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-install-exbgmayz/PyYAML/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/tmp/pip-record-n11vy5s0/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-install-exbgmayz/PyYAML/

我试图解决这个问题,但仍然不知道。

  • https://github.com/yaml/pyyaml/issues/126
  • 如何安装Python的yaml包

我如何解决这个问题...?

共有3个答案

鄢朝斑
2023-03-14

yaml没有使用python 3.7

修复:降级到python2并安装yaml

  1. brew安装python@2。
  2. brew安装libyaml
  3. sudo python-measy_installpyyaml。
寿翰飞
2023-03-14

Python 3.7打破了PyYaml的构建。使用Python 3.6。

仲孙宇定
2023-03-14

PyYAML的C扩展在3.7上不编译,这就是错误消息的内容以及问题126线程中的一些消息所指的内容。PyYAML安装程序中有一种html" target="_blank">机制应该测试C扩展是否可以编译,它主要检查libyaml是否可用。

我假设您已升级到3.7.0(而不是在编写时升级Python3.7),所以我建议您降级到3.6。虽然PyYAML在PyPI上的页面表明只支持3.4和3.5,但3.6似乎还可以。

如果您不能降级Python,并且现在需要3.7的功能,那么可以考虑使用ruamel。yaml(免责声明:我是该软件包的作者)。它本质上是PyYAML的超集,通常如此

import ruamel.yaml as yaml

应该让您的程序正常工作。由于PyPI安装上提供了3.7版macOS轮子,因此应该不会引起任何问题。

 类似资料:
  • 我想为一个项目安装PyYAML,我能找到的只是http://pyyaml.org/站点的链接。我下载了python 3.5 exe文件,上面写着“需要Python 3.5版本,在注册表中找不到” 我搜索了其他安装方法。我在堆栈溢出上找到的唯一一个是“$pip install pyyaml”。它没有说明应该在哪里使用命令来安装包。

  • 我在linux上的EC2工作: 机器:亚马逊Linux AMI 2018.03。0(HVM),SSD卷类型-ami-3885d854 我试图在python3上安装熊猫(我根本没有使用python2的意图,但它是默认安装的) 当我这样做时: 我得到: 收集熊猫使用缓存https://files.pythonhosted.org/packages/08/01/803834bc8a4e708aedebb

  • 试图安装卡玛 就会产生警告 最后,似乎没有因果报应 然而,这似乎是一种因果报应 还有builerror.log档案 我需要安装python才能与业力工作还是有其他问题?提前感谢任何帮助!

  • 在设备中运行android,并报告以下错误 正在安装APK的应用程序调试。应用程序:调试10:53:48 E/1765594925:上传应用程序调试时出错。apk:未知故障([CDS]关闭[0])无法安装/Users/xiaotian/Desktop/wanme\u rn/android/app/build/outputs/apk/app debug。apk公司 失败:生成失败,出现异常。 > 通

  • 你好,而试图在真正的Android设备上运行我的Flutter应用程序im得到以下错误 我尝试:更新Android Studioflutter升级flutter酒吧获取...... 但还没有找到解决方案,希望任何人都能帮忙

  • 我在用CircledImageView库。它在Lollipop+Android版本上工作得很好。但在kitkat它崩溃了。所以在谷歌上搜索之后。我发现我必须在我的应用程序中实现multidex。 这是我的应用程序类。 但是当我运行应用程序时,我得到以下错误。