visual-studio-code - 使用虚拟环境时,vscode 内部人员中的 sys.path 行为不等同于 jupyter lab
问题描述
当切换到 vscode-insiders 笔记本而不是 jupyter 实验室时,我注意到src
无法再导入使用 setuptools 安装的本地包,它会抛出ModuleNotFoundError
.
在比较了两个 IDE 之后,似乎 vscode 并没有sys.path
像 jupyter lab 那样改变。
我的项目架构:
foo
└── bar
└── myproject
├── notebooks
│ └── nb.ipynb
├── setup.py
├── env
└── src
我的安装步骤:
cd /foo/bar/myproject
source env/bin/activate
(env) python3 -m pip install -e .
(env) python3 -m ipykernel install --user --name=my_project_env # add the jupyter kernel based on the environment
然后在 jupyterlab 和 vscode 中打开 nb.ipynb 并检查 sys.path 给出以下结果:
jupyter实验室:
print(sys.path)
-->
...
foo/bar/myproject # allows to import src
...
代码:
print(sys.path)
-->
...
foo/bar/myproject/notebooks # does not allow to import src
...
我本来希望 vscode 将foo/bar/myproject
目录添加到 sys.path 因为它是 src 所在的目录,我有什么问题吗?
(与此同时,我找到了以下解决方法,将以下内容添加到我settings.json
的 vscode 中:
"jupyter.runStartupCommands": [
"import sys",
"sys.path.insert(2,'${workspaceFolder}')"
]
)
解决方案
推荐阅读
- kubernetes - 如何通过一个入口在裸机上使用多域
- backbone.js - 如何从自身调用布局以创建实例
- android - 使用 Android Jetpack Navigation 时如何禁用导航图标
- node.js - MongoDB 在 $group 上缺乏性能
- c# - 我需要编辑列表中的值,并存储用户输入
- c# - 如何在 c# 中使用 selenium 处理来自网页的事件
- python - Python Stream Decode Base64 到有效的 utf8
- spotify - 我可以从我的应用程序为 google home 启动应用程序吗?
- reactjs - Redux thunk – 正确实现
- r - 您如何使用循环在多个站点上执行 Mann-kendall 测试?