【问题标题】:Travis CI not finding python3 on macOSTravis CI 在 macOS 上找不到 python3
【发布时间】:2019-10-29 16:43:16
【问题描述】:

我有以下.travis.yml 文件:

language: objective-c 

# macOS and Xcode Version
osx_image: xcode10

# Build dependencies
install:
  - brew install python3
  - ./fetchDependencies -v

到目前为止一直运行良好。但是,fetchDependencies bash 脚本调用的其中一个构建现在在运行 cmake 时需要 python3,并且我们在 Travis 中看到以下错误:

CMake Error at /usr/local/Cellar/cmake/3.11.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find PythonInterp: Found unsuitable version "2.7.15", but
  required is at least "3" (found /usr/local/bin/python)

FWIW...Travis 上 brew install python3 命令的结果是:

Warning: python 3.6.5_1 is already installed and up-to-date
To reinstall 3.6.5_1, run `brew reinstall python`

编辑:按照@SiadArdroumli 评论中链接中的建议,我将.travis.yml 修改为以下内容,但得到相同的错误:

language: objective-c 

# macOS and Xcode Version
osx_image: xcode10

# Build dependencies
install:
  - brew install python3
  - pip3 install virtualenv
  - virtualenv -p python3 .
  - ./fetchDependencies -v

为什么cmake 没有找到python3...我们能做些什么呢?

【问题讨论】:

  • osx 和 python 可能有问题,请参阅github.com/travis-ci/travis-ci/issues/9929 你可以尝试改用 xcode8.3 还是这个解决方案github.com/travis-ci/travis-ci/issues/…
  • 感谢@SiadArdroumli 的建议。我在第一个链接中尝试了解决方案(请参阅上面的编辑),但它没有用。不幸的是,我们无法恢复到 Xcode 8.3,因为我们的代码一直在努力使用最新 Apple SDK 中的功能(我们已经在研究 Xcode 11 的测试版)。
  • 但是你注意到mac不支持python的说法了吗? docs.travis-ci.com/user/languages/python 也许你应该切换到另一个供应商,比如 circleci.com/docs/2.0/hello-world-macos,然后等到 travis 再次支持 mac 上的 python。
  • 是的...我知道 Travis 并没有在 macOS 上正式支持 python。但是...Python2 在 Travis 上运行良好。感谢 CircleCI 的建议。我会记住的。目前,当我们在 Travis 中运行模拟阶段时,我们已经设法通过在构建过程中使用模拟阶段来解决该问题,从而避免运行中断的构建阶段。

标签: python python-3.x macos cmake travis-ci


【解决方案1】:

我自己在寻找答案时遇到了您的问题。 我找到了一个适合我的临时解决方案。

/usr/local/bin/python其实是一个别名文件

/usr/local/bin/下,你会发现/usr/local/bin/python3也是一个别名文件。

我所做的是将/usr/local/bin/python 重命名为/usr/local/bin/pythonx(临时名称)

并将/usr/local/bin/python3 重命名为/usr/local/bin/python

在此切换后,cmake 将找到具有正确版本的python,其余的应该可以工作。

但据我了解,很多 Apple 应用程序都依赖于Python 2 才能正常工作,因此在您获得cmake 命令工作后,您可能需要将它们切换回原始名称以避免不可预见的副作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多