PEP8 – l'importation n'est pas au top de fichier sys.chemin

Problème

PEP8 a une règle à propos de mettre les importations en haut d'un fichier:

Les importations sont toujours placé au début du fichier, juste après n'importe quel module, les commentaires et les docstrings, et avant de module globals et constantes.

Toutefois, dans certains cas, j'aimerais faire quelque chose comme:

import sys
sys.path.insert("..", 0)

import my_module

Dans ce cas, le pep8 utilitaire de ligne de commande de drapeaux mon code:

E402 module niveau de l'importation n'est pas au top de fichier

Quelle est la meilleure façon d'atteindre PEP8 conformité avec sys.path modifications?

Pourquoi

J'ai ce code parce que je suis en suivant les la structure du projet donné dans Le Routard de Python.

Qui guide suggère que j'ai un my_module dossier, distincte d'une tests dossier, les deux sont dans le même répertoire. Si je veux accéder à my_module de tests, je pense que j'ai besoin d'ajouter .. à la sys.path

  • Pourquoi ne pas vous écrire un setup.py et installer my_module pour les essais?
  • Parce que c'est un peu moins pratique. Je suppose que j'ai pu mais je préfère ne pas.
  • Pour qui? Si jamais vous voulez l'utiliser réellement ce projet partout où il est, et de loin, la façon la plus simple de l'obtenir vers le haut et en cours d'exécution.
  • pour moi. Ce n'est plus un projet personnel pour mon utilisation. Je vais certainement utiliser que si pas d'autres réponses à venir.
  • Si vous n'êtes pas le partage, pourquoi s'inquiéter à propos de la suite de la PEP-8 de si près?
  • À partir de PEP8: "Toutefois, de savoir quand être incohérent, parfois style guide de recommandations ne sont pas applicables. En cas de doute, utilisez votre meilleur jugement.". Il ya des moments où vous devez casser PEP8 de la conformité, et c'est OK.
  • C'est une bonne habitude à prendre pour l'avenir, les choses que je vais partager. (Je vois votre point bien que, dans ce cas je peux utiliser setup.py). Je vais garder cela à l'esprit.

InformationsquelleAutor Luke Taylor | 2016-04-24