[解決済み] PEP8 - import が sys.path でファイルの先頭に来ない。
質問
問題点
PEP8には、importをファイルの先頭に置くというルールがあります。
インポートは常にファイルの先頭に置かれ、モジュールコメントとドキュメント文の直後で、モジュールグローバルと定数の前に置かれます。
しかし、特定のケースでは、私は次のようなことをしたいかもしれません。
import sys
sys.path.insert("..", 0)
import my_module
この場合
pep8
コマンドラインユーティリティが私のコードにフラグを立てます。
E402 モジュールレベルのインポートがファイルの一番上にありません。
でPEP8準拠を達成するための最良の方法は何でしょうか?
sys.path
の修正でPEP8準拠を達成する最善の方法は何ですか?
なぜ
私がこのコードを持っているのは、次のような理由からです。 プロジェクトの構造 で与えられた Pythonのヒッチハイク・ガイド .
そのガイドでは、私は
my_module
フォルダーとは別に
tests
フォルダとは別のもので、どちらも同じディレクトリにあります。もし私が
my_module
から
tests
を追加する必要があると思います。
..
に
sys.path
どのように解決するのですか?
サブディレクトリにテスト用のファイルが複数あることがよくあります。
foo/tests
に、テストしているモジュールは
foo/src
. テストを実行するために
foo/tests
からインポートエラーなしにテストを実行するために、私はファイル
foo/tests/pathmagic.py
を作成すると、次のようになります。
"""Path hack to make tests work."""
import os
import sys
bp = os.path.dirname(os.path.realpath('.')).split(os.sep)
modpath = os.sep.join(bp + ['src'])
sys.path.insert(0, modpath)
すべてのテストファイルにおいて、私は
import pathmagic # noqa
を最初のインポートとして使用します。noqa"コメントによって
pycodestyle
/
pep8
を、未使用のインポートに関する苦情から削除しました。
関連
-
[解決済み] サブディレクトリからファイルをインポートする?
-
[解決済み] import文は常にモジュールの先頭にあるべきですか?
-
[解決済み】PEP8に準拠し、E501を防ぐ超長文文字列の書き方
-
[解決済み】Pythonの`import x`と`from x import y`の文の正しいソート方法は何ですか?
-
[解決済み] 関数内部でインポートするのはpythonicですか?
-
[解決済み] PythonでのAWS Lambdaのインポートモジュールエラー
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] djangoのQueryDictをPythonのDictに変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PYTHONPATHにディレクトリを永久に追加しますか?
-
[解決済み] Pyflakesにステートメントを無視させるにはどうしたらいいですか?
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] Django filter queryset __in for *every* item in list
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複