[Python]无法让Travis CI工作。路径问题

时间:2017-02-12 21:55:13

标签: python python-3.x github travis-ci

这是我第一次使用Travis和#34; test"一般来说。 我创建了一些测试,现在我想将它们添加到Travis,但我遇到了PATH问题。

这就是我所拥有的:

sheetmaker/
      html_builder.py
      constants.py
      sheetmaker.py
tests/
      test_html_builder.py
      data/
              test_html_constants.py

我设法运行test_html_builder.py并且测试正在我的电脑上运行。简而言之,这就是我在 test_html_builder.py

中导入内容的方式。
sys.path.insert(0, os.path.abspath('..'))
from sheetmaker import html_builder
from data import test_html_constants

这在当地有效但Travis CI说:

  • 来自sheetmaker import html_builder
  • ModuleNotFoundError:没有名为' sheetmaker'
  • 的模块

导入东西的正确方法是什么?这是github项目的更多细节:github project!

提前致谢。

2 个答案:

答案 0 :(得分:2)

经过大量的研究,我开始打印print(sys.path)以找出我工作的地点"。从那里我创建了一个异常处理程序

try:
    sys.path.insert(0, os.path.abspath('..')) #Works for local
    from sheetmaker import html_builder
    from data import test_html_constants
except:
    sys.path.insert(0, os.path.abspath('.')) #Works for Travis CI
    from sheetmaker import html_builder 
    from data import test_html_constants

这是导入模块的正确方法吗?不知道,但它确实有效。

答案 1 :(得分:1)

@ cosme12我没有尝试你的解决方案,但我能够通过在.travis.yml中明确声明PYTHONPATH来修复路径问题

示例.travis.yml:

sudo: false
language: python

python:
  - "3.6"

install:
  - export PYTHONPATH=$PYTHONPATH:$(pwd)/src/thermo
  - python3 setup.py install

script:
  - pytest -s 

只需手动将缺少的路径添加到.travis.yml,travis应该可以正常工作。

我喜欢这个解决方案,因为您不需要更改代码,只需要修改travis配置文件。