1. ホーム
  2. Python

Pycharmの未解決の参照問題

2022-02-19 22:45:53

質問内容

プロジェクトEには、F、G、Hのフォルダがあり、Fにはa、bのフォルダがあります。

a.pyです。

from b import fun

正常に実行されるのですが、Pycharmで表示されます。未解決の参照

例えば

これらのクラスがプロジェクトにあるにもかかわらず、参照されないということがpycharmではしばしば起こります。

ファイルの先頭のimportを見ると、対応するモジュールのimportがうまくいかなかったことがわかります。

Unresolved reference 'ERROR_CODE_INPUT_ERROR' less... (Ctrl+F1) 
This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typin

分析

これらのクラスはプロジェクト内にあるため インポートが機能しないのは パス は対応しません。実際、pycharmはプロジェクトのルートをソースディレクトリとしてデフォルトで使用します。 インポートは相対パスではなく絶対パスを使用します。 は、私たちが望む /src ディレクトリではなく、プロジェクトのルートディレクトリを探すことになるので、import はうまくいきません。

解決方法

  • 相対パスへの変更

    from ... .package import *
    
    
    最初の . はカレントディレクトリを示し、それ以降の各' . は前のディレクトリを示します。相対ディレクトリを使用すると、インポートが確実に成功しますが、現在のファイルを別のパッケージに移動した場合、多くの変更が必要になるため、お勧めできません。もちろん、相対パスを使用すると、パッケージ名を自由に変更することができます。

  • pycharmでソースパスを設定する

    ファイル->設定->プロジェクト:サーバー->プロジェクト構成

  • パッケージを置いたフォルダをソースに設定し、インポートされたモジュールクラスなどを、これらのソースフォルダをルートパスにして探す、ということです。



方法2

1.Fフォルダをソースに設定する


2. soucersがPYTHONPATHに追加されていることを確認します。