web-dev-qa-db-ja.com

Pycharm自動相対インポート

PyCharmが提供するautoimportを使用すると、絶対パスインポートが生成されます。つまり.

from my_package.my_subpackage import my_thing

の代わりに

from .my_subpackage import my_thing

pythonパッケージをインポートするときに、絶対インポートではなく相対インポートを使用する設定はありますか?

16
Laimonas Sutkus

現在、相対インポートを使用するように自動インポート機能のインポートスタイルを変更するno方法があるようです。ステートメントをインポートするために行える唯一のスタイル変更は、絶対インポートの構造です。

enter image description here

(ちなみに、Jetbrains/PyCharm設定の検索機能は優れています)。

リファクタリングでも同じことが起こります。これは間違いなく私が追加して欲しいオプションです。

14
ptr

2019.3以降で可能になる https://youtrack.jetbrains.com/issue/PY-6054 注:そのファイルに他の相対インポートがない場合、相対インポートは自動的には行われません。まだ。既存の絶対インポートを相対に変換するアクションもあります: enter image description here

4
Sergey K.

私は一般的に親族に対して助言します、あなたはこの質問を参照することができます: https://softwareengineering.stackexchange.com/a/159505

また、公式のpep8仕様を確認することもできます https://www.python.org/dev/peps/pep-0008/

インポートシステムが正しく構成されていない場合(パッケージ内のディレクトリがsys.pathで終了する場合など)は、通常、読みやすく、動作がよくなる(または少なくともエラーメッセージが改善される)傾向があるため、絶対インポートをお勧めします。

私の個人的な経験から、Pycharmとの統合が不十分な場合があることがわかりますIDE Pycharmを介して実行するより複雑なパッケージレイアウトの破壊テストがある場合。他のツールにもいくつか問題がある可能性があります。

0
realmaniek