[egenix-mx-base] Module DateTime non trouvé
RésoluBonjour,
J'ai un programme qui fait appel à un module que j'ai installé mais malheureusement, il n'est pas accessible (No module named 'DateTime').
Quand j'affiche sys.path, j'ai bien (entre autres) le répertoire où se trouvent mes modules.
d:\....\Python\Lib\site-packages
Fait-il une recherche dans les sous-arborescences de "site-packages" ?
Merci pour vos lumières.
Windows / Firefox 116.0
- [egenix-mx-base] Module DateTime non trouvé
- Base de registre - Guide
- Pas de module ci - Forum TV & Vidéo
- Manque cam module - Forum TNT / Satellite / Réception
- Persistence module - Forum logiciel systeme
- Ou se trouve le presse papier - Guide
13 réponses
bonjour,
Le souci est spécifique à ce module?
Apparemment oui.
Je l'ai mis dans la directory où il y a mon programme, ça marche (sauf que j'ai des erreurs de syntaxe dans ce module...).
Je voudrais déjà régler ce pb de path...
Bonjour,
"No module named 'DateTime'"
si c'est le module que tu veux importer, il faut l'écrire comme ceci:
import datetime
sans majuscules ...
Ben non justement, c'est un module spécifique d'un package particulier :-)
https://www.egenix.com/products/python/mxBase/mxDateTime/
Il a l'air installé :
pip install egenix-mx-base
Requirement already satisfied: egenix-mx-base in d:\....\python\lib\site-packages (3.2.4)
C'est parce qu'il est appelé dans du code que j'ai récupéré que je dois l'importer.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSalut,
La dernière version de ce module date de 2015 et Python 2.7
https://pypi.org/project/egenix-mx-base/
Même si c'est un problème de path, il y a trop de différence de syntaxe entre les V2 et V3 pour que tu puisses utiliser ce module sans problème.
Récupérer dans le module :
print 'From:', m.getaddr('from') raise TypeError, "can't compare the two types"
Bonjour,
Autant que possible, tu devrais plutôt utiliser le module standard datetime.
Si tu es contraint d'utiliser le module dont tu parles :
- Suis la procédure d'installation indiquée ici.
- Assure-toi que tu utilises une version de python compatible.
- Par exemple si c'est un module installé pour python2, aucune chance de l'importer avec python3 (l'interpréteur n'ira pas chercher dans ces dossiers).
- Idem si le module est installé pour une version spécifique de python (par exemple si tu l'installes dans le dossier de python3.11, alors tu ne pourras pas l'importer avec python3.8).
- Bref, si tu as plusieurs versions de python installées, sois vigilant !
- Vérifie dans quel dossier il est installé (donne le chemin complet) et quel interpréteur python tu utilises, car cela impacte la valeur de sys.path.
- Tu évoques le dossier d:\....\python\lib\site-packages\. Est ce que ce dossier est bien dans ton sys.path ?
import sys print(sys.path)
- Le nom du module à faire figurer derrière "import" est le nom du dossier dans lequel le module est installé dans d:\....\python\lib\site-packages\. De ce que je vois ici ce serait plutôt :
from mx.DateTime import DateTime
(qui correspond à d:\....\python\lib\site-packages\mx\DateTime\DateTime.py)
- Tu évoques le dossier d:\....\python\lib\site-packages\. Est ce que ce dossier est bien dans ton sys.path ?
Bonne chance
Salut,
donc oui, c'est un module spécifique et je ne sais pas ce qui est fait quand on appelle ses fonctions.
Pour Python, je n'ai que la version 3.
Sinon, oui sys.path me donne bien le rép.
Et j'ai bien ça :
try: import DateTime except ImportError: from mx import DateTime
Qui est bien une anomalie...
Quand je suffixe avec .DateTime, mon module est appelé mais il plante :
def mktime((year,month,day,hour,minute,second,dow,doy,dst),
SyntaxError: Function parameters cannot be parenthesized
Donc, ça pue, je vais voir si je peux faire autrement... Mais comme je débute en Python, ça va pas être facile...
Attention, regarde bien l'import (je pense que tu as lu mon message alors que j'étais en train de le corriger) :
from mx.DateTime import DateTime
Je veux bien aussi le chemin complet dans lequel est installé ton module et la valeur de sys.path (quitte à anonymiser ton login s'il apparaît dans des chemins si tu ne veux pas le faire apparaître sur le forum).
Bonne chance
Attention, regarde bien l'import (je pense que tu as lu mon message alors que j'étais en train de le corriger) :
C'est pour ça que j'ai dit ensuite que c'était bien une anomalie :-))))
Mon sys.path :
D:\Applis-W10\Python\python311.zip
D:\Applis-W10\Python\DLLs
D:\Applis-W10\Python\Lib
D:\Applis-W10\Python
D:\Applis-W10\Python\Lib\site-packages
Et il semble installé :
pip install egenix-mx-base
Requirement already satisfied: egenix-mx-base in d:\applis-w10\python\lib\site-packages (3.2.4)
Donc, laisse tomber, comme j'avais mis DateTime.py au même niveau que mon pgm, il le trouve tout le temps.
Si je le renomme, que je mette :
from mx import DateTime
ou
from mx.DateTime import DateTime
Ca plante :
ModuleNotFoundError: No module named 'DateTime'
Bonjour
Par rapport au message #13. Il faut en effet ne pas avoir de dossier/fichier ou DateTime (ou mx) au niveau du fichier où tu fais ton import, sinon il n'ira pas chercher le paquet installé dans D:\Applis-W10\Python\Lib\site-packages (en admettant que ce soit là que ton module est installé).
Ensuite concernant ton message d'erreur, assure toi que :\Applis-W10\Python\Lib\site-packages\mx\DateTime\DateTime.py existe, sans quoi l'import ne peut pas marcher. S'il existe, assure-toi que tu as les droits en lecture sur ce fichier.
Bonne chance
Le fichier DateTime.py existe bien là où il doit être et j'ai à peu près tous les droits dessus (admin de mon poste).
Je ne vois pas ce qui coince...
Le fichier DateTime.py existe bien là où il doit être et j'ai à peu près tous les droits dessus (admin de mon poste).
- Faut-il comprendre que son chemin est D:\Applis-W10\Python\Lib\site-packages\mx\DateTime\DateTime.py et que D:\Applis-W10\Python\Lib\site-packages\ est listé dans sys.path ?
- Est-ce que mx soit installé dans plusieurs dossiers listés dans sys.path ?
Au pire tu peux procéder par essai erreur pour essayer de comprendre. Admettons que DateTime.py soit bien dans D:\Applis-W10\Python\Lib\site-packages\mx\DateTime\.
- Si tu crées un fichier D:\Applis-W10\Python\Lib\site-packages\toto.py et que tu lances un interpréteur python, parviens-tu à faire "import toto" ?
- Si tu crées un fichier D:\Applis-W10\Python\Lib\site-packages\mx\toto.py parviens-tu à faire "import mx.toto" ?
- etc.
Bonne chance