[求助] VS Code 如何自动加载 PYTHONPATH 等环境变量 [已善用搜索]

2021-04-10 01:39:02 +08:00
 leverestfish

最近用 vscode 写 python 感觉包路径搜索有点膈应,故来此询问。

[需求] 自动加载 src 等 content root 目录到搜索目录,不想每次打开 vscode 在命令行手动输export pythonpath = ...

[成果] 目前探索成果:

[问题] 所以 vscode 右上角那个三角形 run 按钮( run python with termianl )触发的代码运行如何才能加载.env

这个三角形 run 应该是 python extension 包带的,不知道哪里能设置环境变量

另外问一下,为什么 vscode 的 python 套件,连 if name == main 这种常用 snippet 都不能补全出来

[环境] macOS 插件的话 python 相关就是 vscode 推荐的那套 extension pack

2443 次点击
所在节点    Python
11 条回复
ch2
2021-04-10 02:01:37 +08:00
你需要的功能太多了的话,还是 ptcharm 更合适,vscode 对 python 仅限于轻度编辑
geelaw
2021-04-10 03:07:38 +08:00
你可以用 .vscofe/settings.json 改变打开模拟终端时使用的 shell 命令(加入设置环境变量的实参),但我不知道这对播放按钮是否有效。
SenLief
2021-04-10 08:16:42 +08:00
vscode 不是 ide,他只是编辑器。
aladdindingding
2021-04-10 08:48:40 +08:00
这么说吧 Pycharm 解君愁,我也是 vscode 被迫转的,vscode 拿来看看源码,读下代码还是不错的,干活还得 Pycharm
leverestfish
2021-04-10 12:17:55 +08:00
@ch2 我主力就是使用 pycharm 的,而且正是这个原因使得我对 pycharm 的自动加载 pythonpath 有依赖。但是有的场景(比如需要远程连开发机( pycharm 也可以 remote ssh 但是本质不太一样)),这时候因为我没写 sys.path.append 之类的,所以就很不方便了。

@geelaw 成功了,setting 配置如下。

``` JSON
{
"terminal.integrated.env.osx": {
"PYTHONPATH": "$PYTHONPATH:<MYPATH>"
}
}
```

但是有个小 bug,当我没有打开任何终端的时候,点播放按钮会提示`Command python.execInTerminal-icon not found`
ClericPy
2021-04-10 12:46:36 +08:00
呃 其他的你解决了, 那我就提一下 main 的代码片段不能补全的问题, 这个就不是善用搜索能解决的了, 因为不是 bug, 可以参考我之前发过的帖子, 当时找了 2 天, 结果从更新日志里找到的, 坑, 乱调默认设置太郁闷了.

VSCode 6 天前更新了 Python 扩展, 默认不带代码片段, 不是自动补全坏了, 望周知 - V2EX - https://www.v2ex.com/t/749066#reply7
leverestfish
2021-04-10 13:04:49 +08:00
@ClericPy 非常感谢!!!!!!
leverestfish
2021-04-10 13:10:47 +08:00
@ClericPy 顺便问下,如何讲 Snippets 置顶,或者是调整补全选项的出现顺序?以及能否 disable 补全插件自带的一些选项,比如 if for 之类的(没有扩展的坑位完全没用啊)
ClericPy
2021-04-10 13:34:24 +08:00
@leverestfish
顺序的问题还真没注意过... 我把不用的那几个都删了, 扩展的话, 我也没啥其他补全扩展, 一开始用 jedi, 后来 lsp 真香真快, 后来 lsp 太吃内存了换到 pylance 上(现在就是每次查看定义默认是 pyi 很烦)
generated
2021-04-16 00:06:00 +08:00
参考配置
{
"python.pythonPath": "venv/Scripts/python.exe",
"python.analysis.extraPaths": [
"/your_extra_pythonpath"
],
"python.autoComplete.extraPaths": [
"/your_extra_pythonpath"
],
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/*/**": true,
"**/.hg/store/**": true,
"**/venv/**": true
},
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/venv/**": true,
"**/.git/**": true,
}
}

将你需要补全的目录加到 "python.autoComplete.extraPaths" 和 "python.analysis.extraPaths" 中就可以了
leverestfish
2021-04-16 00:25:50 +08:00
@generated 解析和自动补全我通过 python.envFile 解决了,但是你这 setting 好像没有解决运行时 pythonpath

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/769615

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX