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

leverestfish 1月前 17

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

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

[成果] 目前探索成果:

  • 实现 vscode 解析代码(自动补全等)的搜索路径
    • 通过 setting.json 的"python.envFile"字段以及.env文件
  • 实现 debug 模式 run
    • 通过 lauch.json 的"python.envFile"字段以及.env文件

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

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

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

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

最新回复 (11)
  • ch2 24天前
    引用 2
    你需要的功能太多了的话,还是 ptcharm 更合适,vscode 对 python 仅限于轻度编辑
  • geelaw 24天前
    引用 3
    你可以用 .vscofe/settings.json 改变打开模拟终端时使用的 shell 命令(加入设置环境变量的实参),但我不知道这对播放按钮是否有效。
  • SenLief 24天前
    引用 4
    vscode 不是 ide,他只是编辑器。
  • aladdindingding 24天前
    引用 5
    这么说吧 Pycharm 解君愁,我也是 vscode 被迫转的,vscode 拿来看看源码,读下代码还是不错的,干活还得 Pycharm
  • 楼主 leverestfish 24天前
    引用 6
    @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 24天前
    引用 7
    呃 其他的你解决了, 那我就提一下 main 的代码片段不能补全的问题, 这个就不是善用搜索能解决的了, 因为不是 bug, 可以参考我之前发过的帖子, 当时找了 2 天, 结果从更新日志里找到的, 坑, 乱调默认设置太郁闷了.

    VSCode 6 天前更新了 Python 扩展, 默认不带代码片段, 不是自动补全坏了, 望周知 - V2EX - https://www.v2ex.com/t/749066#reply7
  • 楼主 leverestfish 24天前
    引用 8
    @ClericPy 非常感谢!!!!!!
  • 楼主 leverestfish 24天前
    引用 9
    @ClericPy 顺便问下,如何讲 Snippets 置顶,或者是调整补全选项的出现顺序?以及能否 disable 补全插件自带的一些选项,比如 if for 之类的(没有扩展的坑位完全没用啊)
  • ClericPy 24天前
    引用 10
    @leverestfish
    顺序的问题还真没注意过... 我把不用的那几个都删了, 扩展的话, 我也没啥其他补全扩展, 一开始用 jedi, 后来 lsp 真香真快, 后来 lsp 太吃内存了换到 pylance 上(现在就是每次查看定义默认是 pyi 很烦)
  • generated 24天前
    引用 11
    参考配置
    {
    "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 24天前
    引用 12
    @generated 解析和自动补全我通过 python.envFile 解决了,但是你这 setting 好像没有解决运行时 pythonpath
  • 游客
    13
返回