pythonの問題ではなくpycharmの問題で嵌った話
pythonでは自分で書いたプログラムの関数をライブラリとしてインポートできる便利な機能がある。
同じ階層にある、前に作ったあの関数を使いたい。そんな時にpycharmでエラーが出ました。
No module named ~
原因の切り分け
最初は原因がわからなかったため、とりあえずコンソールからインポートできるか試してみると実行できました。
つまり、この問題はpycharm側の問題であるとわかりました。
原因
調べていく中で、ライブラリとしてインポートするにはプログラムの親ディレクトリがsources rootである必要があるようです。これは一応便利機能の一つだと思います。
このディレクトリをsources rootに指定すると、プロジェクト内のどのディレクトリでインポートしてもsources rootをルートディレクトリとした絶対パスで指定できる、つまりfromなどを使ったパスの指定をする必要がなくなるというものです。
代償としてpure pythonのようにディレクトリの相対パスで指定するとエラーが出るようです。
解決方法
野蛮な方法として、使いたいプログラムがあるディレクトリを右クリック、Mark Directory as でsources rootを指定することでエラーが消えて使えるようになりました