I am running everything on bash on windowsL'importation du module de journalisation dans Cython échoue en raison d'une erreur d'attribut
Voici ce que je fais. J'ai un fichier model.py
que je suis en train d'optimiser à l'aide cython
. J'ai fait une copie de ce fichier et renommé la copie au model.pyx
. J'ai ajouté un tas d'importations dans ce nouveau fichier pyx. Le nouveau fichier ressemble un peu à ceci:
import pyximport
pyximport.install(pyimport=True)
import cython
cimport cython
import numpy as np
cimport numpy as np
import logging
import time
DTYPE = np.float64
ctypedef np.float64_t DTYPE_t
...
Maintenant, je compilez à un fichier .so en utilisant la méthode setup.py
standard qui me donne model.so
. Maintenant, quand j'essaie d'utiliser ce modèle dans un nouveau script python, il me donne l'erreur suivante:
File "/usr/local/lib/python2.7/dist-packages/pyximport/pyximport.py", line 419, in load_module
return load_module(fullname, source_path, so_path=so_path, is_package=is_package)
File "/usr/local/lib/python2.7/dist-packages/pyximport/pyximport.py", line 233, in load_module
exec("raise exc, None, tb", {'exc': exc, 'tb': tb})
File "/usr/local/lib/python2.7/dist-packages/pyximport/pyximport.py", line 216, in load_module
mod = imp.load_dynamic(name, so_path)
File "__init__.py", line 77, in init logging.__init__
ImportError: Building module logging failed: ["AttributeError: 'NoneType' object has no attribute 'co_filename'\n"]
Je ne sais pas où je vais mal. J'ai beaucoup cherché sur google mais je n'ai pas pu trouver quelqu'un face à une erreur similaire ou similaire. Toute aide appréciée!
Il va y avoir des problèmes si vous avez un fichier '' model.py' et model.pyx' le même répertoire. Renommez ou supprimez 'model.py' du répertoire et n'utilisez pas pyximport dans le fichier' .pyx'. pyximport est fait dans un fichier Python qui importe un module Cython. Je suggère d'utiliser un fichier 'setup.py' de toute façon. –
Salut j'ai oublié de mentionner cela dans ma question. J'ai renommé le 'model.py' en' model_org.py' dans le dossier. Mais supprimer 'pyximport' du fichier cython a corrigé l'erreur. Merci! –