Liste le chemin actuel
En déclarant ce qui suit, nous pouvons vérifier le chemin Python actuel:
importer sysIci, le module Pprint est juste utilisé pour rendre les choses jolies, afin que vous puissiez ignorer cette partie et vous concentrer sur le reste. Tout ce que nous essayons de faire ici est d'imprimer sys.chemin.
C'est ce que nous obtenons:
Ce que vous remarquez ici, c'est que tout d'abord, c'est une liste. Ainsi, selon la liste, il sera d'abord consulté dans le répertoire de travail actuel, puis dans d'autres répertoires un par un. Le répertoire de travail actuel est le répertoire dans lequel le script Python principal - celui qui est exécuté - se trouve. De plus, cela signifie également que cette liste peut être modifiée ou modifiée.
Ajouter un chemin
Le sys.chemin.La méthode annexée () est utilisée spécifiquement pour ajouter un chemin à celles existantes.
Supposons maintenant que j'ai deux fichiers distincts: Main.py, et fichier1.py. Principal.Py est le fichier principal, et nous allons essayer d'importer le fichier1.py (un module que nous avons écrit).
principal.py | fichier1.py |
---|---|
Importer le fichier1 Imprimer (fichier1.secret) | Secret = "Ceci est la phrase secrète" |
Parce que le fichier1.Py ou notre module est dans le répertoire de travail, vous devriez être en mesure d'imprimer avec succès la phrase secrète. Il en est ainsi parce que lorsque l'interpréteur Python recherche le module demandé, il recherchera d'abord dans le répertoire de travail et parce que notre module appelé File1 est dans le répertoire de travail, il imprimera automatiquement notre phrase secrète.
Maintenant, supposons que je crée un répertoire dans mon répertoire de travail appelé "Directory1" et que je place mon module appelé file1 à l'intérieur.
Maintenant, dans le module, le fichier1 est la phrase secrète que nous essayons d'imprimer. Dans ce cas, il n'imprimera pas la phrase secrète. Pourquoi? Parce que l'interprète ne cherche pas dans "Directory1" pour les modules. En d'autres termes, le répertoire de travail actuel est membre de la liste de SYS.Path mais «Directory1» n'est pas membre de cette liste. Ainsi, l'erreur résultante est une erreur de modulenotfound - elle n'a pas pu trouver ou localiser le module appelé fichier1.
Afin d'éviter ce problème, vous devez dire à l'interprète Python où chercher le fichier du module1. C'est là que le système.chemin.La méthode annexe () est disponible.
Le sys.chemin.La méthode annexée () est utilisée pour ajouter le chemin que nous voulons à la liste existante.
Sur un système Linux:
système.chemin.ajouter («/ path / to / dir»)Sur un système Windows, vous écrivez:
système.chemin.Ajouter («c: \\ path \\ vers \\ dir»)Veuillez noter que vous ne pouvez pas ajouter de fichier donné à SYS.Chemin de chemin, vous pouvez plutôt ajouter des répertoires, puis importer les fichiers que vous souhaitez.
Exemple 1
Alors, essayons à nouveau l'opération précédente (où le module File1 est à nouveau situé dans Directory1), mais cette fois, nous allons ajouter le chemin d'accès au module Fichier1 vers SYS.Chemin en utilisant le sys.chemin.Méthode annexée ().
principal.py | fichier1.py |
---|---|
importer sys système.chemin.Ajouter ('C: \\ Users \\ Never \\ pyCharmProjects \\ PythonProject1 \\ Directory1 ') Importer le fichier1 Imprimer (fichier1.secret) | Secret = "Ceci est la phrase secrète" |
Lorsque nous ajoutons le chemin en utilisant le sys.chemin.Méthode ajouter (), nous ajoutons d'abord l'emplacement du module sur le chemin, puis l'importons. Si cela est fait de cette manière, l'interprète Python devrait être en mesure de localiser le module demandé et donc de récupérer la variable secrète.
La sortie de l'opération précédente est la suivante:
Exemple n ° 2
Prenons un autre exemple, cette fois sur une machine Linux. Supposons que nous ayons un fichier - principal.py.
principal.py |
---|
importer sys à partir de l'imprimée Pprint pprint (sys.chemin) |
Ici, sys.le chemin [0] est «/ home / kalyani» parce que c'est là que.Py est situé.
Maintenant, modifions un peu le script en utilisant le sys.chemin.Méthode annexée (). Utilisons la méthode pour ajouter un chemin particulier ('/ home / kalyani / répertoire1') à sys.chemin.
principal.py |
---|
importer sys à partir de l'imprimée Pprint système.chemin.Ajouter ('/ home / kalyani / répertoire1') pprint (sys.chemin) |
Alors, le système.chemin.La méthode annexée () a ajouté le chemin d'accès à la fin de la liste existante! Ici, veuillez également noter que l'appel.
Chemin de python
Il y a un tout petit problème avec ce que nous venons de faire et c'est que nous n'avons pas mis cet emplacement sur le SYS.liste de chemins. Le sys.chemin.La méthode annexée () est utilisée pour ajouter temporairement un chemin et en tant que tel, ce chemin serait valable pour une session par exemple. Si vous souhaitez modifier en permanence le système.Liste des chemins, alors nous pouvons utiliser PythonPath pour ajouter le chemin à la liste. Depuis Sys.Le chemin examine également PythonPath, les emplacements répertoriés seront ensuite inclus dans la liste des chemins.
Sur Linux:
exporter pythonpath = '/ path / to / dir'Ici, vous pouvez ajouter le chemin que vous voulez.
principal.py |
---|
importer sys à partir de l'imprimée Pprint pprint (sys.chemin) |
Lors de l'écriture de programmes complexes dans Python, nous allons éventuellement ajouter des modules tiers ou même mieux, créer nos propres modules. Dans tous les cas, nous ne pouvons pas conserver tous les fichiers Python que nous créons dans un répertoire, nous voulons peut-être utiliser plusieurs répertoires pour classer adéquatement nos fichiers. Le problème est cependant que nous devons avoir besoin d'importer nos modules créés à gauche et à droite. Dans de tels cas, si nous voulons empêcher une erreur de modulenotfound, alors nous pouvons ajouter l'emplacement du répertoire - et vous soucier, ce doit être un répertoire, pas un fichier - à sys.Chemin en utilisant le sys.chemin.Méthode annexée ().
Codage heureux!