Codeship导入模块失败

时间:2016-10-12 22:50:56

标签: python continuous-integration python-import importerror codeship

我有一个包含以下目录结构的存储库:

repo_folder\
----src\
    ----__init__.py
    ----src1.py
    ----src2.py
    ----src3.py
----testing\
    ----specific_test.py
----requirements.txt

specific_test.py就在它的第一行:

import os
import sys

sys.path.insert(0, os.path.dirname(os.getcwd()))
import src.src1
import src.src2
import src.src3

# lots of asserts

当我从specific_test.py文件夹或testing文件夹中运行repo_folder时,它可以正常运行,但本地计算机

问题在于,当我尝试从我的codeship帐户运行此帐户时,它会给我一个Import Error。 错误如下所示:

    导入测试模块时
  • ImportError
  • 错误收集testing/specific_test.py
  • 没有名为src.src1
  • 的模块
  • 确保您的测试模块/包具有有效的Python名称。

你知道这会是什么问题吗?

您对更好的替代方案有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这似乎是一个路径问题。您本地计算机上似乎发生的事情是您将CWD插入路径,最有可能返回repo_folder\。从那里,您可以通过src.src1导入您的src文件,因为src是容器。在您的代码帐户上,cwd(当前工作目录)不正确,因此无法找到src.的{​​{1}}部分。检查第src.src1行返回的内容,更重要的是sys.path.insert(0, os.path.dirname(os.getcwd()))并验证它是否导致os.path.dirname(os.getcwd())