前提
PythonのパッケージをVSCodeで作成しています。
その際、出来る限り不具合を少なくするためにpylanceで厳格なチェック("Python > Analysis: Type Checking Mode" = strict)を行っています。
ところが、厳格なチェックを行うと後述のソースコードで "Cycle detected in import chain" エラーが発生してしまいます。
(basicなチェックであれば、エラーが発生しません。)
実現したいこと
- 厳格なチェックを行っても "Cycle detected in import chain" エラーが発生しないようにしたいです。
発生している問題・エラーメッセージ
VSCodeで後述のソースコードのpytestフォルダを開いた後、エディタで McMain.py を開くと、以下のエラーが発生します。
Cycle detected in import chain
d:\pytest\pypkg\McMain.py
d:\pytest\pypkg_init_.py
該当のソースコード
フォルダ構成
pytest +- pypkg | +- __init__.py | +- McMain.py | +- McSub.py +- pytest.py
- pypkg/__ init__.py
python
1from .McMain import * 2from . import McSub
- pypkg/McMain.py
python
1from . import McSub 2 3class Main(): 4 def __init__(self): 5 self.sub = McSub.Sub()
- pypkg/McSub.py
python
1class Sub(): 2 pass
- pytest.py
python
1import pypkg 2 3fn0 = pypkg.Main() 4print(fn0) 5 6fn1 = pypkg.McSub.Sub() 7print(fn1)
- 画面イメージ
備考
- pytest.py を実行すると、は正常に実行する事ができます。
- 上記エラーの発生行は1行目です。(1行目が空行でも1行目で発生します。)
補足情報(FW/ツールのバージョンなど)
- Windows7 SP1(32bit)
- Phthon Ver3.8.8
- VSCode Ver1.65.2
- VSCode Extension: Python Ver2022.4.0
- VSCode Extension: Pylance Ver2022.3.4
- VSCode設定
settings.json { "python.languageServer": "Pylance", "jupyter.interactiveWindowMode": "perFile", "editor.renderControlCharacters": true, "extensions.autoUpdate": false, "workbench.startupEditor": "none", "terminal.integrated.env.windows": { "PSExecutionPolicyPreference": "RemoteSigned" }, "python.analysis.typeCheckingMode": "strict" }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/07 05:00
2022/04/07 07:00
2022/04/07 08:16
2022/04/08 04:49