モジュールが存在する場所を指定しているつもりですが,どうしても「ModuleNotFoundError」が発生してしまいます。
原因がどうしても分からず詰まっているので,どなたかお助けください。。。
####ディレクトリ構造
projectX |_apps |_bigquery_app |_base.py |_configurator.py
####実行ファイル
apps/bigquery_app/base.py # import datetime # from google.cloud import bigquery import os os.chdir(os.path.dirname(os.path.abspath(__file__))) os.chdir('..') print(os.getcwd()) from configurator import Configurator
####実行結果
~\projectX $ python .\apps\bigquery_app\base.py C:\Users\masat\projectX\apps Traceback (most recent call last): File "C:\Users\masat\projectX\apps\bigquery_app\base.py", line 7, in <module> from configurator import Configurator ModuleNotFoundError: No module named 'configurator'
os.chdir('..')
でカレントディレクトリを変えても、そこのファイルがインポートできるようになるわけではありません
「configurator.py」があるパスを「sys.path」に追加したら、インポートできます
参考
https://genchan.net/it/programming/python/4949/#i-6
の「1.5 一つ上のフォルダのモジュールをインポートしファイルを実行」
ご回答ありがとうございます...!!!
os.chdir('..')のかわりにsys.path('..')を使うことで「スクリプトファイルのあるディレクトリ起点の相対」を取得することができて,無事importできました!
回答2件
あなたの回答
tips
プレビュー