将 pycharm 项目导入 jupyter notebook

Import pycharm project into jupyter notebook

我正在使用 Pycharm 开发一个 python 包,并希望使用 Jupyter notebooks 与模块交互。

我的项目结构如下:

project/notebooks/my_notebook.ipynb
project/module/__init__.py
project/module/core.py
project/tests/...

我在浏览器中 运行 my_notebook.ipynb 但不知道如何导入 python 模块的内容。 from module import foo 之类的东西不是开箱即用的。我遇到了 this blog post,它涉及将源代码安装为可编辑的 Pip 包,但我想知道是否有另一种方法可以使其工作而不涉及安装包?

您只需要将该目录放入笔记本中的路径即可:

例如:

import sys

# make sure to use position 1
sys.path.insert(1, "/Users/foo/bar/project/")
from module.core import foo

使用位置 1 很重要,因为使用位置 0 可能会中断 sys.path:docs

另请注意 你应该确保你的笔记本使用的是相同的 virtualenv(或 conda env)pycharm 项目正在使用,否则你可能会遇到意想不到的冲突

在我看来,将特定路径硬编码到笔记本代码中是不好的做法。相反,我会在启动 Jupyter Notebook 服务器时将根项目文件夹添加到 PYTHONPATH,或者直接从项目文件夹中添加

env PYTHONPATH=`pwd` jupyter notebook

或者如果您是从其他地方启动它,就像这样

env PYTHONPATH=/Users/foo/bar/project/ jupyter notebook