LoginSignup
20
7

More than 3 years have passed since last update.

autopep8がsys.path.append()行をImportの下に持ってきてしまう問題

Last updated at Posted at 2020-03-02

Abstract

autopep8でフォーマットしながらPythonコードを書いているとき,オートフォーマットされたくない行の最後に#nopepを付ける

Background

VSCodeautopep8でフォーマットしながらPythonコードを書いているとき,
./neko/modules/nekofuguri.pyをインポートしたいがため

import sys
sys.path.append('./neko/modules/')
import nekofuguri 

て書いてたのが,

import sys
import nekofuguri
sys.path.append('./neko/modules/')

ってセーブするときとかに勝手にされてしまっていた.

Solution

いかで色々挙げられているが
https://stackoverflow.com/questions/54030320/vscode-autopep8-allow-statements-before-imports

  • VSCodeのsettings.jsonにて"python.formatting.autopep8Args": ["--ignore", "E402"]と設定する
    • 402エラーがimportがファイルのトップレベルに来てないっていうエラーらしいなのでこれを無視するように設定するということらしい
    • 多分ワークスペース毎のsetttings.jsonの方が良い?
  • オートフォーマットされたくない行の最後に#noqaまたは#nopepを付ける すなわち
import nekofuguri #nopep

みたいな.

いずれかで対応すればよい
なんとなく,sys.path.append行を別のファイルに書いてそれをimportしてもいい気もするが,野暮ったい気がするので試してもない.

20
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
7