[egenix-mx-base] Module DateTime non trouvé

Résolu
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 - Modifié le 22 août 2023 à 17:13
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 - 25 août 2023 à 13:43

Bonjour,

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


13 réponses

yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
18 août 2023 à 14:47

bonjour,

Le souci est spécifique à ce module?

0
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
18 août 2023 à 14:56

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...


0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
18 août 2023 à 16:07

Bonjour,

"No module named 'DateTime'"

si c'est le module que tu veux importer, il faut l'écrire comme ceci:

import datetime

sans majuscules ...

0
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
Modifié le 18 août 2023 à 16:12

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.


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
22 août 2023 à 13:56

J'ai tourné dans tous les sens, je ne vois pas...


0
Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40
22 août 2023 à 14:10

Salut,

La dernière version de ce module date de 2015 et Python 2.7

https://pypi.org/project/egenix-mx-base/

0
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
22 août 2023 à 14:27

Oui, j'ai vu que ce n'est pas tout jeune, mais le problème semble venir d'autre part.

0
Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40
Modifié le 22 août 2023 à 14:40

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"
0
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749
22 août 2023 à 17:12

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)

Bonne chance

0
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
Modifié le 22 août 2023 à 17:25

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...

0
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749
22 août 2023 à 17:29

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

0
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
Modifié le 22 août 2023 à 17:59

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)

0
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
22 août 2023 à 19:32

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'


0
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749
23 août 2023 à 16:50

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

0
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
23 août 2023 à 22:16

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...


0
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749
Modifié le 24 août 2023 à 10:29

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

1
blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289 > mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024
24 août 2023 à 21:53

Merci mais j'abandonne, car comme je l'ai dit en plus, même si j'arrive à charger le module, j'ai des erreurs quand j'en appelle une fonction.

0
mamiemando Messages postés 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749 > blux Messages postés 26013 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024
25 août 2023 à 13:43

Ok, comme tu veux, dommage qu'on ait pas trouvé :s Bonne continuation

0