最近用 vscode 写 python 感觉包路径搜索有点膈应,故来此询问。
[需求] 自动加载 src 等 content root 目录到搜索目录,不想每次打开 vscode 在命令行手动输export pythonpath = ...
[成果] 目前探索成果:
"python.envFile"
字段以及.env
文件"python.envFile"
字段以及.env
文件[问题] 所以 vscode 右上角那个三角形 run 按钮( run python with termianl )触发的代码运行如何才能加载.env
这个三角形 run 应该是 python extension 包带的,不知道哪里能设置环境变量
另外问一下,为什么 vscode 的 python 套件,连 if name == main
这种常用 snippet 都不能补全出来
[环境] macOS 插件的话 python 相关就是 vscode 推荐的那套 extension pack
1
ch2 2021-04-10 02:01:37 +08:00 via iPhone 1
你需要的功能太多了的话,还是 ptcharm 更合适,vscode 对 python 仅限于轻度编辑
|
2
geelaw 2021-04-10 03:07:38 +08:00 via iPhone 1
你可以用 .vscofe/settings.json 改变打开模拟终端时使用的 shell 命令(加入设置环境变量的实参),但我不知道这对播放按钮是否有效。
|
3
SenLief 2021-04-10 08:16:42 +08:00 1
vscode 不是 ide,他只是编辑器。
|
4
aladdindingding 2021-04-10 08:48:40 +08:00 1
这么说吧 Pycharm 解君愁,我也是 vscode 被迫转的,vscode 拿来看看源码,读下代码还是不错的,干活还得 Pycharm
|
5
leverestfish OP @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` |
6
ClericPy 2021-04-10 12:46:36 +08:00 1
呃 其他的你解决了, 那我就提一下 main 的代码片段不能补全的问题, 这个就不是善用搜索能解决的了, 因为不是 bug, 可以参考我之前发过的帖子, 当时找了 2 天, 结果从更新日志里找到的, 坑, 乱调默认设置太郁闷了.
VSCode 6 天前更新了 Python 扩展, 默认不带代码片段, 不是自动补全坏了, 望周知 - V2EX - https://www.v2ex.com/t/749066#reply7 |
7
leverestfish OP @ClericPy 非常感谢!!!!!!
|
8
leverestfish OP @ClericPy 顺便问下,如何讲 Snippets 置顶,或者是调整补全选项的出现顺序?以及能否 disable 补全插件自带的一些选项,比如 if for 之类的(没有扩展的坑位完全没用啊)
|
9
ClericPy 2021-04-10 13:34:24 +08:00
@leverestfish
顺序的问题还真没注意过... 我把不用的那几个都删了, 扩展的话, 我也没啥其他补全扩展, 一开始用 jedi, 后来 lsp 真香真快, 后来 lsp 太吃内存了换到 pylance 上(现在就是每次查看定义默认是 pyi 很烦) |
10
generated 2021-04-16 00:06:00 +08:00 1
参考配置
{ "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" 中就可以了 |
11
leverestfish OP @generated 解析和自动补全我通过 python.envFile 解决了,但是你这 setting 好像没有解决运行时 pythonpath
|