LoginSignup
1
2

More than 3 years have passed since last update.

【Pycharm】同じ階層のpythonファイルをインポートしようとするとエラーが発生するときの対処法

Posted at

pythonの問題ではなくpycharmの問題で嵌った話

pythonでは自分で書いたプログラムの関数をライブラリとしてインポートできる便利な機能がある。

同じ階層にある、前に作ったあの関数を使いたい。そんな時にpycharmでエラーが出ました。

No module named ~

原因の切り分け

最初は原因がわからなかったため、とりあえずコンソールからインポートできるか試してみると実行できました。

つまり、この問題はpycharm側の問題であるとわかりました。

原因

調べていく中で、ライブラリとしてインポートするにはプログラムの親ディレクトリがsources rootである必要があるようです。これは一応便利機能の一つだと思います。

このディレクトリをsources rootに指定すると、プロジェクト内のどのディレクトリでインポートしてもsources rootをルートディレクトリとした絶対パスで指定できる、つまりfromなどを使ったパスの指定をする必要がなくなるというものです。

代償としてpure pythonのようにディレクトリの相対パスで指定するとエラーが出るようです。

解決方法

野蛮な方法として、使いたいプログラムがあるディレクトリを右クリック、Mark Directory as でsources rootを指定することでエラーが消えて使えるようになりました

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2