MacOS下想安装MySQL-Python,执行语句:

sudo pip install MySQL-Python

遇到了如下错误信息:

/Users/kaitlyn/anaconda3/envs/env2.7/lib/gcc/x86_64-apple-darwin11.4.2/4.8.5/include-fixed/limits.h:168:61: fatal error: limits.h: No such file or directory

#include_next <limits.h>  /* recurse down to the real one */

^

compilation terminated.

error: command 'gcc' failed with exit status 1

可以看到gcc缺少头文件limit.h,google上看到有一个人遇到了相同的问题,他更新了新版本的gcc,问题得以解决。

解决方案是:更新gcc

1、下载适用于你的系统的MacPort,地址为https://www.macports.org/install.php

  我的系统是macOS Mojave,所以下载安装了macOS Mojave v10.14

2、更新MacPort版本,确保是最新版,在命令行输入:

sudo port selfupdate

3、安装gcc,在命令行输入:

sudo port install gcc7

  然后等待安装,过程可能比较慢。我安装的是gcc7,如果想安装任意别的版本,比如版本x,可以输入gccx。

  在执行这条语句时这里遇到一个问题:

  Warning: xcodebuild exists but failed to execute

  Warning: Xcode does not appear to be installed; most ports will likely fail to build.

  

  原因是从xcode4.3之前的版本更新之后,xcode-select依然指向旧版的xcode,需要在命令行输入:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

  这个办法我是参考的链接https://trac.macports.org/wiki/ProblemHotlist,finish这条命令以后再sudo port install gcc7安装一下。

4、我使用下面的命令更新了gcc7的最新版,当然这一步你也可以跳过

sudo port -n upgrade --force gcc7

(env2.7) Kaitlyns-Mac:lib kaitlyn$ sudo port -n upgrade --force gcc7

--->  Fetching archive for gcc7

--->  Attempting to fetch gcc7-7.4.0_0.darwin_18.x86_64.tbz2 from https://pek.cn.packages.macports.org/macports/packages/gcc7

--->  Attempting to fetch gcc7-7.4.0_0.darwin_18.x86_64.tbz2.rmd160 from https://pek.cn.packages.macports.org/macports/packages/gcc7

--->  Computing dependencies for gcc7

--->  Deactivating gcc7 @7.4.0_0

--->  Cleaning gcc7

--->  Uninstalling gcc7 @7.4.0_0

--->  Cleaning gcc7

--->  Computing dependencies for gcc7

--->  Installing gcc7 @7.4.0_0

--->  Activating gcc7 @7.4.0_0

--->  Cleaning gcc7

--->  Scanning binaries for linking errors

--->  No broken files found.

--->  No broken ports found.

5、安装完成以后,输入gcc -version查看现在的版本,发现依然是以前的旧版本4.8.5,而不是我安装的新版本7。

(env2.7) Kaitlyns-Mac:lib kaitlyn$ gcc --version

gcc (GCC) 4.8.5

Copyright (C) 2015 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  这是因为原始默认版本就是4.8.5,需要切换版本。

  切换版本:你可以下面的语句查看MacPort管理所有版本。以mp作为前缀开头的是MacPort自己管理的版本,而gcc7和IIvm-gcc7是Xcode管理的。

port select --list gcc

(env2.7) Kaitlyns-Mac:bin kaitlyn$ port select --list gcc

Available versions for gcc:

mp-gcc7

none (active)

  可以看见我安装新版mp-gcc7

设置它为默认:

sudo port select --set gcc mp-gcc7

(env2.7) Kaitlyns-Mac:bin kaitlyn$ sudo port select --set gcc mp-gcc7

Password:

Selecting 'mp-gcc7' for 'gcc' succeeded. 'mp-gcc7' is now active.

再查看:

gcc --version

(env2.7) Kaitlyns-Mac:bin kaitlyn$ gcc --version

gcc (MacPorts gcc7 7.4.0_0) 7.4.0

Copyright (C) 2017 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

可以看到现在为gcc7.4.0了。

最新文章

  1. .NET单元测试的艺术-2.核心技术
  2. STM32固件库3.5+uCOS2.86移植(转自暴走的工程师)
  3. C++中new和malloc的区别
  4. Asp.Net Web API 2第七课——Web API异常处理
  5. 基于jquery实现拆分姓名的方法
  6. java yum安装的环境变量设置
  7. ZOJ 3702 Gibonacci number(数学推导)
  8. 对foreach循环的思考
  9. 【原创】ligerGrid使用初长成
  10. 通过四个例子理解JavaScript拓展运算符
  11. java学习路线图-----java基础学习路线图(J2SE学习路线图)
  12. router-link RangeError: Maximum call stack size exceeded
  13. tensorflow 经典教程及案例
  14. select 的选中问题
  15. redis设置最大内存
  16. LeetCode 32 Longest Valid Parentheses(最长合法的括号组合)
  17. MNIST机器学习入门【学习笔记】
  18. .net mvc HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容
  19. Zuul使用Ribbon配置自动重试
  20. CSS: rem

热门文章

  1. VS2015创建类库项目后添加不了WPF资源字典,窗口,用户控件处理办法
  2. jquery中文档处理的总结
  3. C#验证ip地址的代码
  4. Sharding-jdbc视频:当Sharding-jdbc遇到Spring Boot
  5. HttpClient使用代理IP
  6. Jmeter5.1.1构造https请求
  7. Spring @Autowired注解在非Controller中注入为null
  8. tornado框架设置
  9. HTTP 响应代码
  10. nginx配置location总结及rewrite规则写法(转)