簡體   English   中英

[Python]無法使Travis CI正常工作。 路徑問題

[英][Python]Can't make Travis CI work. PATHs problems

通常,這是我第一次使用Travis和“測試”。 我創建了一些測試,現在想將它們添加到Travis中,但是在使用PATH時遇到了麻煩。

這是我所擁有的:

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

我設法運行test_html_builder.py並且測試在我的PC中正常工作。 簡而言之,這就是我在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導入html_builder
  • ModuleNotFoundError:沒有名為“ sheetmaker”的模塊

進口東西的正確方法是什么? 這是github項目的更多詳細信息: github項目!

提前致謝。

經過大量研究,我開始打印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

這是導入模塊的正確方法嗎? 不知道,但是可以。

@ 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配置文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM