0
ここは私がやっていることです。 私はcython
を使って最適化しようとしているファイルmodel.py
を持っています。このファイルのコピーを作成し、そのコピーの名前をmodel.pyx
に変更しました。私はこの新しいpyxファイルにたくさんのインポートを追加しました。属性エラーのためにcythonでロギングモジュールをインポートできない
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
...
今、私は私にmodel.so
を与える標準setup.py
方法を使用しての.soファイルにこれをコンパイルします。新しいファイルが多少このようになります。
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"]
私は私が間違っているつもりですどこか分からない。私は新しいPythonスクリプトでこのモデルを使用しようとすると、今では私に、次のエラーが発生します。私はGoogleで多くを検索したが、誰かが同じまたは同様のエラーに直面しているのを見つけることができなかった。どんな助けにも感謝!
'model.py'ファイルと' model.pyx'ファイルが同じディレクトリにあると問題が発生します。ディレクトリから 'model.py'の名前を変更するか削除します。また、' .pyx'ファイルにpyximportを使用しないでください。 pyximportは、cythonモジュールをインポートするPythonファイルで行われます。とにかく 'setup.py'ファイルを使うことをお勧めします。 –
こんにちは、私の質問でこれを言い忘れました。フォルダ内の 'model.py'を' model_org.py'に変更しました。しかし、cythonファイルから 'pyximport'を削除すると、何とかエラーが修正されました。ありがとう! –