问题
2024.04.24最新版本vscode的jupyter预览版2024041101
中,jupyter内核运行环境不是集成终端,同时不运行~/.bashrc
文件,因此PYTHONPATH环境变量在jupyter插件里不生效,导致import找不到自己写的库文件。
与之相对的,如果终端运行jupyter notebook
则网页jupyter里面可以正确获取到终端环境变量。
这一问题在stack overflow和github多有反馈,最终找到一个可用方法,这里和python环境设置一并记录下来。
1.VSCode Jupyter环境设置
设置-用户-拓展-Jupyter-Run Startup Commands添加项
"jupyter.runStartupCommands": [
"import sys;sys.path.append('/path/to/your/libs/dir')"
]
具体作用是在启动Jupyter内核时,会首先依次运行这些python代码,可以进行一些批量化操作,详细可看vscode设置提示,其中有两点需要注意:
- 虽然设置的是服务器环境,但是应该在用户设置里修改(作用于全部),远程并无这一项
/path/to/your/libs/dir
需使用绝对路径,使用~/
不生效,推测是jupyter内核运行环境并无用户概念
2.PYTHONPATH环境变量设置
~/.bashrc
中增加
export PYTHONPATH=/path/to/your/libs/dir:$PYTHONPATH
目的是设置python运行时,寻找库的路径
如果不方便修改.bashrc,可以参考拓展设置python.envFile,在工作路径(默认)下新建.env文件,并写入PYTHONPATH
3.VSCode代码提示搜索路径
仅限使用Pylance智能提醒
设置-远程-Pylance - Python > Analysis: Extra Paths
添加库所在目录