微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 VSCode 中为 jupyter/jupytex 设置 python 包搜索路径?

如何解决如何在 VSCode 中为 jupyter/jupytex 设置 python 包搜索路径?

我的项目文件结构:

MyProject/
    |- src/
        packageA/
            |- __init__.py
            |- moduleA.py
    |- Playground/
        |- foo.py
        |- bar/
            |- baz.py

Playground/foo.pyPlayground/bar/baz.py 中,我编写了一些 Python 代码,可以将其视为带有 #%% 的 JupyterNotebook 单元:

# Playground/foo.py & Playground/bar/baz.py

# %% I can run this cell with IPython in VSCode by shift+enter
import sys
print(sys.path)

import packageA

通过 shift + enter 运行单元格后,它们显示

['{path_to_vscode_workspace}/Playground',...]

ModuleNotFoundError: No module named 'packageA'

路径不包含{path_to_vscode_workspace},而是包含foo.py ({path_to_vscode_workspace}/Playground) 的工作目录。

如何使用 VSCode 特定参数在 settings.json 中设置 python 包搜索路径?

  • settings.json 中使用 setup 而不在任何 .py 文件添加代码
  • 使用相对搜索路径在另一台计算机上继续工作(不同的工作区路径)

解决方法

如果您在 foo.py 中运行以下代码,您会发现当前工作目录 (cwd) 是 ..\MyProject\Playground。当然,当前文件夹中没有名为 packageA 的模块:

import os
print(os.getcwd())

在import语句前,在foo.pybaz.py中添加如下代码,将cwd改为MyProject:

import os
os.chdir("the absolute path to MyProject")

那么你就可以import src.PackageA成功:

enter image description here

[更新]

在launch.json中添加以下配置并Run without Debugging

"cwd": "${workspaceFolder}","env": {
    "PYTHONPATH":"${workspaceFolder}"
}

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。