J'ai un bloc-notes Jupyter et j'aimerais utiliser certaines informations d'identification que j'ai placées dans un fichier config.py. Ce fichier se trouve dans le même dossier que le bloc-notes Jupyter.
J'utilise la ligne
ModuleNotFoundError: No module named 'config.py'; 'config' is not a package
Le problème est que Jupyter répond avec ce message:
import config
Merci de votre aide
3 Réponses :
L'instruction import
est utilisée pour importer des bibliothèques externes à utiliser dans votre programme. Je pense que vous cherchez peut-être à lire le fichier, donc à condition qu'il soit dans le même chemin de dossier que votre ordinateur portable, vous pouvez utiliser ceci:
fileContents = file.read() print(fileContents)
Vous pouvez ensuite définir le contenu du fichier sur une variable et l'imprimer par exemple en utilisant:
file = open("config.py", "r")
Vous voudrez peut-être utiliser un format csv et ajouter une sorte de cryptage s'il s'agit d'un mot de passe stocké par exemple.
Ce n'est pas nécessairement vrai. import
est tout aussi souvent utilisé pour importer des modules personnalisés et pas seulement des bibliothèques externes.
Vous devrez peut-être essayer
__init__.py
Cela devrait également fonctionner avec les variables globales en fonction de la façon dont vous avez stocké vos informations d'identification dans config. Si vous importez le module à partir d'un dossier différent, vous pouvez transformer le dossier en un package en créant un fichier .py vide dans le dossier appelé:
from config import <the_function_you_want_to_use>
Ensuite, stockez une copie du fichier .py que vous souhaitez utiliser comme module et appelez-le. Je suis nouveau dans ce domaine donc j'espère que cela vous aidera.
Pourquoi l' from config import
fonctionnerait-elle si l' import
normale ne fonctionne pas?
Ce que j'ai compris de votre explication, c'est que votre projet rencontrait un problème lors de l'importation de ce que vous vouliez, donc l'utilisation de l'appel explicite pourrait aider. Qu'essayez-vous d'importer exactement?
Après quelques recherches, j'ai trouvé un moyen de résoudre mon besoin en utilisant le package Dotenv Python: pypi.org/project/python-dotenv
Ce qui doit être fait? Insérez les lignes suivantes:
CLIENT_ID = os.getenv("CLIENT_ID") CLIENT_SECRET = os.getenv("CLIENT_SECRET")
Placez ensuite un fichier caché nommé .env où se trouvent les informations d'identification. Dans mon cas, cela ressemble à ceci:
CLIENT_ID = "XXXX" CLIENT_SECRET = "YYYY"
Ensuite, dans votre fichier notebook, chaque fois que vous devez charger les informations d'identification, utilisez:
!pip install python-dotenv # Credentials file %load_ext dotenv %dotenv import os
Et vous êtes prêt à partir!
Crédit à http://veekaybee.github.io/2020/02/25/secrets/ pour la solution
Merci à tous pour leurs réponses. J'ai trouvé un moyen de résoudre mon besoin en utilisant le package Dotenv Python: pypi.org/project/python-dotenv