2017-10-05 10 views
0

何らかの理由で、自分のモジュールをこの形式のimport moduleにインポートできません。PycharmのPythonカスタムモジュールのインポートエラー

IDE:Pycharm、Pythonのバージョン:3

ファイル:

projectname/scr/test1.py 
projectname/scr/test2.py 

test1.py:

def print_value(x) 
    print x 

test2.py:

import test1 

value = 5 
test1.print_value(value) 

Pycharmエディタショー私は次のエラー。

import test1 # Error: No module named test1 

ただし、コード(python test2.py)を実行すると正常に動作します。唯一の問題は、私がtestをタイプするときのように、test1の関数や変数の推奨を得られないということです。何も示唆としてポップアップしません。 pycharmから少し奇妙な行動です。

しかし、これらのファイルをフォルダ階層内の順番に移動すると、test1.somethingと入力するとすべて正常に動作し、エラーも適切な候補も表示されません。

ファイル:

projectname/test1.py 
projectname/test2.py 

これまでの任意の説明?なぜそれはsrcフォルダで動作しませんか?

更新: はこのStackOverflowのquestionに触発root sourcesとしてsrcをマークすることで問題を解決しました。私はまだそれがどうして起こったのか、そしてこのディレクトリをrootのソースとして設定するのがなぜこの問題を解決するのか理解できませんが、今のところうまくいきます。同じ場所に位置

+0

__init__.pyはscrで利用できますか? – Sosel

+0

@Soselはい、srcフォルダにあります。 – utengr

+0

test3.pyを実行するとsys.pathには何がありますか?また、それはinit.py –

答えて

0

このStackOverflowに触発されたルートソースとしてsrcにマークすることで問題を解決しましたquestion。私はまだそれがどうして起こったのか、そしてこのディレクトリをrootのソースとして設定するのがなぜこの問題を解決するのか理解できませんが、今のところうまくいきます。

0

モジュールはすべての問題

0
import sys 
sys.path.insert(0,'projectname/scr') 
from test1 import anything 

せずにインポートする必要があり、私が思うに、これはあなたを助けます。このパスをインデックス0の使用可能なパスに挿入すると、簡単にモジュールを呼び出すことができます。

関連する問題