前提
ファイルの配置は以下のようになっています。
/apps |-/src | |-game.py |-app.py
VScodeの拡張機能、python及びpylint(pep8)で表示されるモジュールのimportに関する警告(エラー?)を非表示にしたい。
もしくは、警告が出ない状態に持っていきたい。
発生している問題
app.pyにて、game.pyから変数game
をimportする際、from src.game import game
とすると正常に読み込まれますが、app.py内のgame
には全て波線が表示され、カーソルを合わせると警告が表示されます。警告には変数game
が未定義だとあります。
Undefined variable: 'game'Python(undefined-variable)
冒頭のimport文には次のような警告が表示されています。
unresolved import 'src.game'Python(unresolved-import)
該当のソースコード
実際のコードはもう少し複雑ですが、簡潔にするとこんな感じです。
python
1# app.py 2from src.game import game 3 4game.sayHello("John")
python
1# game.py 2class Game: 3 def sayHello(name): 4 print(f"Hello, {name}") 5game = Game()
試したこと
警告はimport game
とすれば消えることがわかりました。しかしながら、こうすると1行目でModuleNotFoundError
が出てプログラムが止まります。
Traceback (most recent call last): File "~\project\app\app.py", line 1, in <module> import game ModuleNotFoundError: No module named 'game'
from app import src
として、その下にgameをimportすると警告は消えますが、下記のエラーが出力され、上記同様プログラムが実行されません。
Traceback (most recent call last): File "~\prooject\app\app.py", line 1, in <module> from app import src File "~\project\app\app.py", line 1, in <module> from app import src ImportError: cannot import name 'src' from 'app' (~\project\app\app.py)
追記(3:44pm):
この他にも様々な組み合わせを試しましたが、from src.game import game
以外では全てモジュールが見つからないというエラーが出力されます。
import app
としてからimport game
など、警告が消えるパターンはいくつかありました。
game.py
にて、game = Game()
としてますが、app.py
に持っていってclassをimportするパターンも試しましたが、同じくモジュールが見つからないとエラーが出力されました。
game = Game()
はimportがうまくいかなかったので、game.py
に置いてますが、importさえうまくいけばapp.py
にあっても問題ないです。というか、その方がいいです。
つまるところ、
- 警告を無視すれば問題なくプログラムが実行できる。挙動にも問題はない。
- 警告を消すように努めればエラーが出力されて動かない。
どう対処するのが最善手でしょうか?
補足情報
windows 10 home
python 3.7.4
pylint pep8
Visual Studio Code 1.38.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。