python - 为什么 Travis CI 无法构建 Python 项目?
问题描述
我有一个使用 Microsoft 的 API ( Pywin32 ) 的简单 Python 脚本。我能够在我的本地机器上成功运行该项目,但在 Travis 中,它会引发错误 -
100% |████████████████████████████████| 51kB 17.9MB/s
Collecting pylint==2.2.2 (from -r requirements.txt (line 15))
Downloading https://files.pythonhosted.org/packages/a5/06/ecef826f319055e6b231716730d7f9047dd7524ffda224b521d989f085b6/pylint-2.2.2-py3-none-any.whl (750kB)
100% |████████████████████████████████| 757kB 18.9MB/s
Collecting pywin32==224 (from -r requirements.txt (line 16))
Could not find a version that satisfies the requirement pywin32==224 (from -r requirements.txt (line 16)) (from versions: )
No matching distribution found for pywin32==224 (from -r requirements.txt (line 16))
The command "pip install -r requirements.txt" failed and exited with 1 during .
Your build has been stopped.
在我的本地系统中,Python 版本是3.6.6
并且 pip 是18.1
. 但是,如果您在 Travis 中注意到,pip 版本是10.0.1
. 这可能是问题吗?
我的 travis.yml 文件包含 -
language: python
python:
- "3.6.6"
pip:
- "18.1"
install:
- pip install -r requirements.txt
script:
- python main.py
Python 包 pywin32==224 存在并且可以在我的本地机器上下载,所以我猜错误不是来自他们这边。
谢谢您的帮助。
编辑 -
尝试安装 Python 后,出现以下错误:
0.01s$ source ~/virtualenv/python3.6/bin/activate
$ python --version
Python 3.6.3
$ pip --version
pip 9.0.1 from /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages (python 3.6)
0.08s$ choco install python3
choco: command not found
The command "choco install python3" failed and exited with 127 during .
Your build has been stopped.
编辑 2 -
新的 .travis.yml :
language: python
python:
- "3.6"
os: windows
before_install:
- choco install python3
- export PATH="/c/Python37:/c/Python37/Scripts:$PATH"
- python -m pip install --upgrade pip wheel
install:
- pip install -r requirements.txt
script:
- python main.py
输出 -
Worker information
The language 'python' is currently unsupported on the Windows Build Environment.
Let us know if you'd like to see it: https://travis-ci.community/c/environments/windows. Thanks for understanding!
解决方案
pywin32
是 WinAPI 包装器,因此它是仅限 Windows 的包,您不能在 Linux 上使用它。
Travis CI 默认在 Linux 上运行,但自 2018 年 10 月起,可以通过添加文件来使用os: windows
Windows .travis.yml
。查看有关此的Travis 博客文章。
然而,由于它是“抢先体验”功能,它仍然遗漏了很多东西,包括Python 支持。因此,如果您现在需要 Python - 唯一的方法是手动安装它,即像这里
使用 Python 3.8 更新了示例(2020 年 4 月),现在似乎是默认的:
- os: windows
language: sh
python: "3.8"
before_install:
- choco install python3
- export PATH="/c/Python38:/c/Python38/Scripts:$PATH"
- python -m pip install --upgrade pip wheel
推荐阅读
- java - 如何处理您没想到的异常,即使它已在文档中声明?
- python - 用 dataframe.apply() 替换 for 循环
- list-comprehension - 在 Coq 中重写列表理解
- java - 如何从链表内的arraylist中读取数据
- php - “试图获取非对象的属性 'listaOrdenes'”返回 json 错误
- javascript - 如何使用axios渲染EXIF图像数据并在React Js中显示
- java - 使用扫描仪从文件中读取文本时如何修复 java.util.NoSuchElementException 错误?
- python - print() 语句在导入的模块中不起作用
- docker - 为什么 docker 不断转储不必要的文件?
- javascript - 运行时错误:找不到模块“./config”