Set_up: J'ai un fichier .py pour chaque fonction que je dois utiliser dans un programme.
Dans ce programme, je dois appeler la fonction à partir des fichiers externes.
J'ai essayé:
from file.py import function(a,b)
Mais je reçois l'erreur:
ImportError: aucun module nommé 'file.py'; le fichier n'est pas un package
Comment résoudre ce problème?
from file import function
. Pas besoin d'extensions de fichier ou de paramètres de fonctionfile.py
, assurez-vous qu'il n'y a pas de package dans votre répertoire avec le nomfile
.Réponses:
Il n'est pas nécessaire d'ajouter
file.py
lors de l'importation. Il vous suffit d'écrirefrom file import function
, puis d'appeler la fonction à l'aide defunction(a, b)
. La raison pour laquelle cela peut ne pas fonctionner, c'est parce qu'ilfile
s'agit d'un des modules de base de Python, donc je vous suggère de changer le nom de votre fichier.Notez que si vous essayez d'importer des fonctions à partir
a.py
d'un fichier appeléb.py
, vous devrez vous en assurera.py
etb.py
être dans le même répertoire.la source
Tout d'abord, vous n'avez pas besoin d'un
.py
.Si vous avez un fichier
a.py
et à l'intérieur vous avez quelques fonctions:Et vous voulez les importer,
z.py
vous devez écrirela source
Vous pouvez le faire de 2 manières. La première consiste simplement à importer la fonction spécifique que vous souhaitez à partir de file.py. Pour ce faire, utilisez
Une autre façon consiste à importer l'intégralité du fichier
Ensuite, vous pouvez appeler n'importe quelle fonction dans file.py en utilisant
la source
Vous pouvez également appeler la fonction à partir d'un répertoire différent, au cas où vous ne pourriez pas ou ne voulez pas avoir la fonction dans le même répertoire que vous travaillez. Vous pouvez le faire de deux manières (il existe peut-être d'autres alternatives, mais ce sont celles qui ont fonctionné pour moi).
Alternative 1 Modifiez temporairement votre répertoire de travail
Alternative 2 Ajoutez le répertoire où vous avez votre fonction à sys.path
la source
Si votre fichier se trouve dans une structure de package différente et que vous souhaitez l'appeler à partir d'un package différent, vous pouvez l'appeler de cette façon:
Supposons que vous ayez la structure de package suivante dans votre projet python:
dans le
com.my.func.DifferentFunction
fichier - python, vous avez une fonction, comme:Et vous voulez appeler différentes fonctions à partir de la
Example3.py
façon suivante:Définir l'instruction d'importation dans le
Example3.py
fichier pour la fonction d'importation de tousou définissez chaque nom de fonction que vous souhaitez importer
Ensuite,
Example3.py
vous pouvez appeler la fonction pour exécuter:Production:
la source
Je suis tombé sur la même fonctionnalité mais j'ai dû faire ce qui suit pour le faire fonctionner.
Si vous voyez «ModuleNotFoundError: aucun module nommé», vous avez probablement besoin du point (.) Devant le nom de fichier comme ci-dessous;
la source
Enregistrez d'abord le fichier au format .py (par exemple,
my_example.py
). Et si ce fichier a des fonctions,Dans la fonction d'appel, il vous suffit de taper les lignes ci-dessous.
nom_fichier: mon_exemple2.py
============================
============================
la source
import fn
(sans extension) et en les utilisant directement sur le fichier principalfn.my_funcion()
. Lorsque j'utiliseimport fn.py
tente de charger le fichier py.py, qui n'existe pas. L'utilisationfrom fn.py import funcname
n'a pas fonctionné aussi. Je vous remercie.Renommez le module en autre chose que «fichier».
Assurez-vous également lorsque vous appelez la fonction que:
1) si vous importez le module entier, vous réitérez le nom du module lors de son appel:
ou
2) ou si vous importez des fonctions spécifiques, des fonctions avec un alias ou toutes les fonctions en utilisant *, vous ne répétez pas le nom du module:
ou
ou
la source
Les fonctions du fichier .py (peuvent (bien sûr) se trouver dans un répertoire différent) peuvent être simplement importées en écrivant d'abord les répertoires puis le nom du fichier sans extension .py:
Et plus tard être utilisé:
function_name()
la source
À l'intérieur de MathMethod.Py.
À l'intérieur de Main.Py
Sortie: 1200
la source
Vous n'avez pas à ajouter
file.py
.Gardez simplement le fichier au même emplacement que le fichier d'où vous souhaitez l'importer. Ensuite, importez simplement vos fonctions:
la source
Vous devez avoir le fichier au même emplacement que celui des fichiers Python que vous essayez d'importer. «La fonction d'importation de fichiers» suffit également.
la source
ajoutez un point (.) devant un nom de fichier si vous souhaitez importer ce fichier qui se trouve dans le même répertoire où vous exécutez votre code.
Par exemple, j'exécute un fichier nommé a.py et je veux importer une méthode nommée addFun qui est écrite dans b.py, et b.py est là dans le même répertoire
à partir de .b import addFun
la source
Supposons que le fichier que vous souhaitez appeler soit anotherfile.py et que la méthode que vous souhaitez appeler soit method1, puis importez d'abord le fichier, puis la méthode
si method1 fait partie d'une classe, que la classe soit class1, alors
puis créez un objet de classe1, supposez que le nom de l'objet est ob1, puis
la source
dans mon cas, j'ai nommé mon fichier
helper.scrap.py
et je n'ai pas pu le faire fonctionner jusqu'à ce que je passe àhelper.py
la source