如何将自己编写的Cython模块导入到Jupyter Notebook中

4

问题是我无法将我的Cython模块导入到Jupyter笔记本中。我一无所知,但想知道这是否与我使用的多个conda环境有关。

cythonDir中,我编写了一个具有单个函数定义的.pyx文件,并通过setup.py成功编译。奇怪的是,我无法将它导入到与cythonDir相同目录下的当前笔记本中。但是,在parentDir下的交互式Python终端中导入该模块没有问题

整个目录结构如下:

- parentDir
  - notebook.ipynb
  - cythonDir

需要注意的一点是,我的jupyter安装在一个conda环境proj中,而笔记本是使用另一个内核(环境)tf2运行的(cython模块是在tf2下编译的)。

我这样做是为了安装一个单独的jupyter,并通过切换jupyter内的内核与不同的环境一起工作。

提前感谢!


你是如何编译你的代码的?你尝试过 python3 setup.py build_ext --inplace 吗?https://cython.readthedocs.io/en/latest/src/userguide/source_files_and_compilation.html#basic-setup-py - Sylvain
感谢@Sylvain的评论。是的,我按照指南操作了,但并没有成功。 - Yongkin
2个回答

1
根据我的朋友建议,可以按照这一部分在笔记本中编写和编译Cython代码。这不是答案,而是使用Jupyter笔记本中自定义Cython模块的替代方法。

0

你的 setup.py 文件在哪里?如果你的包从 parentDir 开始,那么尝试按照以下步骤进行(这对我有效):

+ notebok.ipnb
+ parentDir
L--+ setup.py
   + python_src
   +-- script.py
   + cython_src
   L-- script.pyx

你的笔记本需要与整个软件包处于同一级别才能够导入它。 如果可以,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接