AJH*_*JHC 10 python cython python-3.x jupyter-notebook
我将此文件em.pyx与 Jupyter 笔记本放在同一文件夹中,我尝试在其中导入它,但它给了我错误
ImportError: No module named em
Run Code Online (Sandbox Code Playgroud)
我试过添加
import sys
sys.path.insert(0, 'name_of_directory_where_pyxfile_is')
Run Code Online (Sandbox Code Playgroud)
或者
sys.path.append('my/path/to/module/folder')
Run Code Online (Sandbox Code Playgroud)
正如此处和此处所建议的那样,但我不断收到相同的错误。我还创建了一个 empy__init__.py 文件,但什么也没有。
编辑:然后我添加
import pyximport
pyximport.install()
Run Code Online (Sandbox Code Playgroud)
之前import em,现在我从python 2.7中得到很多错误(我不知道为什么python2,因为pyx的编译是用python3制作的,并且jupyter内核也设置为Python3);前三个是:
ImportError Traceback (most recent call last)
<ipython-input-2-778b3d13b1ae> in <module>()
2 pyximport.install()
3
----> 4 import em1d
/home/me/.local/lib/python2.7/site-packages/pyximport/pyximport.pyc in load_module(self, fullname)
460 self.pyxbuild_dir,
461 build_inplace=self.inplace,
--> 462 language_level=self.language_level)
463 return module
464
/home/me/.local/lib/python2.7/site-packages/pyximport/pyximport.pyc in load_module(name, pyxfilename, pyxbuild_dir, is_package, build_inplace, language_level, so_path)
231 raise exc.with_traceback(tb)
232 else:
--> 233 exec("raise exc, None, tb", {'exc': exc, 'tb': tb})
234 return mod
235
Run Code Online (Sandbox Code Playgroud)
EDIT2:另外,运行后pyximport.install()我得到(None, None)
小智 0
可能会发生导入,因为您尝试.pyx直接导入到 python 中。您需要首先Cython安装pyxinstall. 这可能会有所帮助。
但你可以尝试一下其他方法。尝试将 pyx 文件转换为 py 文件,然后导入该文件。你的工作将会完成,但会牺牲速度。