0

に失敗した:私はからspecific_test.pyを実行するとモジュールをインポートすると、私は次のディレクトリ構造を持つリポジトリ持っCodeship

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 

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

specific_test.pyはそれの最初の行にありtestingフォルダ内またはrepo_folderフォルダ内で動作しますが、 on ローカルマシン。

問題は、私がcodeshipアカウントからこれを実行しようとすると、私にImport Errorが与えられます。 エラーは次のようになります。

  • ImportErrorテストモジュール/パッケージが有効なPythonの名前を持っていることを確認しtesting/specific_test.py
  • src.src1
  • という名前のモジュールを収集していないテストモジュール
  • ERRORをインポート中。

あなたは問題がどうなるか知っていますか?

代替手段の候補がありますか?

+0

につながっていることを確認します。テストフォルダに__ init __.pyファイルを含めました。現在のところ、それは私にいくつかのインポートされたモジュール上で無効な構文を参照して別のエラーを与えます。これで私はそれが動作すると思う..Judging私はまだ検証しています。構文エラーは、コードシップがpython3の代わりにpython2.7環境をデプロイするという事実から来なければなりません。 –

答えて

0

これは経路の問題と思われます。あなたのローカルマシンで起こっているように見えるのは、あなたのパスにCWDを挿入することです。これはおそらくrepo_folder\として返されます。そこからsrcがcontainseなのでsrc.src1でsrcファイルをインポートできます。あなたのコードシェアアカウントでは、cwd(現在の作業ディレクトリ)が正しくないため、src.の部分がsrc.src1でないことがあります。行sys.path.insert(0, os.path.dirname(os.getcwd()))が返す行、もっと重要なのはos.path.dirname(os.getcwd())を確認し、それがrepo_folder\

関連する問題