首页 > 解决方案 > Windows Subsystem for Linux 上的 Anaconda 环境作为 PyCharm 中的 python 解释器和 Jupyter Notebook 中的内核

问题描述

概括

我想使用 Windows Subsystem for Linux (WSL) 中的 anaconda 环境作为 PyCharm 的 Python 解释器和 Jupyter Notebook 的内核。

我试过的

tacs-v2我的WSL(Ubuntu 20.04.3 LTS)上有一个名为 anaconda 的环境。我创建这个环境是为了安装一个名为TACS的开源有限元代码,它只能在 Linux 上编译(因此使用了 WSL)。

我想使用 PyCharm 作为与 TACS 相关的一些 python 脚本的 IDE,并且我已经能够按照这些说明tacs-v2在 Windows 上的 PyCharm Professional 中配置为远程解释器。

我还想创建一些与 TACS 相关的 Jupyter Notebooks。我第一次尝试使用 PyCharm(在 Windows 上)作为 Jupyter Notebook 的编辑器,但是当我执行它时出现以下错误: 在此处输入图像描述

当我尝试为 Jupyter 服务器配置解释器时,我发现由于某些原因我的远程解释器tacs-v2无法使用: 在此处输入图像描述

由于 PyCharm 不工作,我考虑直接从 WSL 启动 Jupyter Notebook。我遵循了本指南,并成功地运行了笔记本,但有一个警告。在我笔记本的开头,以下导入语句最初导致ModuleNotFoundError

from tacs import TACS, elements, constitutive, functions

其中tacs是构成有限元代码的包,它对应于本地存储库中的一个目录。有关其结构的表示,请参见下文:

tacs-2.0.0/
|-- build/
|-- docs/
|-- examples/
|-- ...
|-- tacs/
    |-- __init__.py
    |-- constitutive.cpp
    |-- constitutive.cpython-38-x86_64-linux-gnu.so
    |-- constitutive.pxd
    |-- constitutive.pyx
    |-- ...

使用 PyCharm 在 python 脚本中运行相同的导入语句很好。我在这个答案中找到了解决方案。其实跑步

import sys
print(sys.path)

使用 PyCharm (Windows) 和 Jupyter (WSL) 返回不同的结果。前者回来了

['/mnt/c/Users/qa21944/git/tacs-2.0.0/examples/crm',
 '/mnt/c/Program Files/JetBrains/PyCharm 2021.2.2/plugins/python/helpers/pydev',
 '/mnt/c/Users/qa21944/git/tacs-2.0.0',
 '/mnt/c/Program Files/JetBrains/PyCharm 2021.2.2/plugins/python/helpers/pycharm_display',
 '/mnt/c/Program Files/JetBrains/PyCharm 2021.2.2/plugins/python/helpers/third_party/thriftpy',
 '/mnt/c/Program Files/JetBrains/PyCharm 2021.2.2/plugins/python/helpers/pydev',
 '/mnt/c/Users/qa21944/AppData/Local/JetBrains/PyCharm2021.2/cythonExtensions',
 '/mnt/c/Users/qa21944/git/tacs-2.0.0/examples/crm',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python38.zip',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python3.8',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python3.8/lib-dynload',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python3.8/site-packages',
 '/mnt/c/Program Files/JetBrains/PyCharm 2021.2.2/plugins/python/helpers/pycharm_matplotlib_backend',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python3.8/site-packages/IPython/extensions']

而后者返回

['/mnt/c/Users/qa21944/git/tacs-2.0.0/examples/crm',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python38.zip',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python3.8',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python3.8/lib-dynload',
 '',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python3.8/site-packages',
 '/home/fmamitrotta/anaconda3/envs/tacs-v2/lib/python3.8/site-packages/IPython/extensions',
 '/home/fmamitrotta/.ipython']

所以我不得不sys.path.append('/mnt/c/Users/qa21944/git/tacs-2.0.0')在我的笔记本中的 import 语句之前添加。

问题

标签: pythonjupyter-notebookpycharmanacondawindows-subsystem-for-linux

解决方案


推荐阅读