小言_互联网的博客

VScode的python环境配置(包括连接远程服务器)

218人阅读  评论(0)

Vscode安装

直接进入vscode官网https://code.visualstudio.com/Download下载对应版本即可。以window系统为例,下载64bit的.zip即可。
然后解压到自定义文件夹,进去打开code.exe即安装完成。

配置本地python环境

首先找到python环境的目录

本地的python环境有两种,一种是直接安装的python环境,另一种是通过anaconda工具安装的python环境,无论是哪种环境都有对应的python解释器,首先找到解释器的位置python.exe(博主是conda新建的环境,所以在anaconda文件夹下的envs文件夹里,pytorch是自定义环境名字)。

打开settings文件

file->preferences->settings,在配置文件里完成两个重要的内容

  1. python解释器的位置 ,对应自己本地的目录即可;
  2. 设置你喜爱的代码高亮样式,一系列颜色主题之类的东西;


在此展示python解释器的设置,其余设置因人而异,不一一展开,以下是我的完整settings内容,懒癌患者可以直接复制覆盖,把对应pythonPath改了就可以。(包括python,latex和ssh的配置)

{
    "latex-workshop.latex.recipes": [{
        "name": "xelatex",
        "tools": [
            "xelatex"
        ]
      }, {
        "name": "latexmk",
        "tools": [
            "latexmk"
        ]
      },
      
      {
        "name": "pdflatex -> bibtex -> pdflatex*2",
        "tools": [
            "pdflatex",
            "bibtex",
            "pdflatex",
            "pdflatex"
        ]
      }
      ],
      "latex-workshop.latex.tools": [{
      "name": "latexmk",
      "command": "latexmk",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "-pdf",
        "%DOC%"
      ]
      }, {
      "name": "xelatex",
      "command": "xelatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
      }, {
      "name": "pdflatex",
      "command": "pdflatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
      }, {
      "name": "bibtex",
      "command": "bibtex",
      "args": [
        "%DOCFILE%"
      ]
      }],
      "latex-workshop.view.pdf.viewer": "tab",
      "latex-workshop.latex.clean.fileTypes": [
      "*.aux",
      "*.bbl",
      "*.blg",
      "*.idx",
      "*.ind",
      "*.lof",
      "*.lot",
      "*.out",
      "*.toc",
      "*.acn",
      "*.acr",
      "*.alg",
      "*.glg",
      "*.glo",
      "*.gls",
      "*.ist",
      "*.fls",
      "*.log",
      "*.fdb_latexmk"
      ],
    "python.pythonPath":"D:\\study\\anaconda\\envs\\pytorch\\python.exe",
    "files.associations": {
    "*.vue": "vue",
    "*.wpy": "vue",
    "*.wxml": "html",
    "*.wxss": "css"
    },
    "terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
    "git.enableSmartCommit": true,
    "git.autofetch": true,
    "emmet.triggerExpansionOnTab": true,
    "emmet.showAbbreviationSuggestions": true,
    "emmet.showExpandedAbbreviation": "always",
    "emmet.includeLanguages": {
    "vue-html": "html",
    "vue": "html",
    "wpy": "html"
    },
    //主题颜色 
    //"workbench.colorTheme": "Monokai",
    "git.confirmSync": false,
    "explorer.confirmDelete": false,
    "editor.fontSize": 18,
    "window.zoomLevel": 1,
    "editor.wordWrap": "on",
    "editor.detectIndentation": false,
    // 重新设定tabsize
    "editor.tabSize": 4,
    //失去焦点后自动保存
    "files.autoSave": "onFocusChange",
    // #值设置为true时,每次保存的时候自动格式化;
    "editor.formatOnSave": false,
     //每120行就显示一条线
    "editor.rulers": [
    ],
    // 在使用搜索功能时,将这些文件夹/文件排除在外
    "search.exclude": {
        "**/node_modules": true,
        "**/bower_components": true,
        "**/target": true,
        "**/logs": true,
    }, 
    // 这些文件将不会显示在工作空间中
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "**/*.js": {
            "when": "$(basename).ts" //ts编译后生成的js文件将不会显示在工作空中
        },
        "**/node_modules": true
    }, 
    // #让vue中的js按"prettier"格式进行格式化
    "vetur.format.defaultFormatter.html": "js-beautify-html",
    "vetur.format.defaultFormatter.js": "prettier",
    "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
            // #vue组件中html代码格式化样式
            "wrap_attributes": "force-aligned", //也可以设置为“auto”,效果会不一样
            "wrap_line_length": 200,
            "end_with_newline": false,
            "semi": false,
            "singleQuote": true
        },
        "prettier": {
            "semi": false,
            "singleQuote": true
        }
    },
    "workbench.settings.editor": "json",
    "workbench.editorAssociations": [
      {
        "viewType": "jupyter.notebook.ipynb",
        "filenamePattern": "*.ipynb"
      }
    ],
    "jupyter.interactiveWindowMode": "perFile",
    "workbench.iconTheme": "vscode-icons",
    "python.formatting.provider": "yapf",
    "remote.SSH.remotePlatform": {
        "47.102.216.131": "linux"
    }
  }

参考https://zhuanlan.zhihu.com/p/113222681

安装扩展包

目前为止,可以用自己本机的python环境进行编译运行了,而且代码也比较漂亮,但还有问题没有解决,怎么debugging逐步调试,怎么智能补全,等等,这时候就需要安装一些插件扩展了。

Bracket Pair Colorizer:括号主题,妈妈再也不用担心我看混乱括号的嵌套了!
Jupyter:在vscode可以直接使用jupyter逐行运行,我要这本机jupyter有何用!
LaTeX Workshop:非科研人忽略,比Tex live更加优雅,不妨试一试,万一爱上它呢?
Path Intellisense:代码里调用的图片长啥样啊?好烦!有了它可以在鼠标放那就能看到!
Python:这个不多bb,python环境必备。
vscode-icons:文件乱七八糟,有了它每个文件会有自己对应可爱的图标,心情好很多了!
Remote-SSH:连接远程服务器的,在后面细说,不需要的自动忽略。

以上是我认为最重要也足够完善的扩展包集合了,那么有人又要问怎么安装啊,在哪安装啊,最左侧有个扩展包选项,也就是最后一个图标,然后挨个搜索,点install就行,不会有人不知道install是啥意思吧orz 不会吧不会吧!

如何调试python代码


直接F5 debugging就可以,记得先打断点,后debug,然后中间变量会在左侧,可以逐步观察,这个具有普遍性,想必大家都会,没必要多讲。

怎么连接远程服务器?

本文的重点来了!我们作为计算机行业的人,由于本机计算和存储条件的天然缺陷,有时候不得不使用服务器开发,那么直接用xshell连接服务器大家应该都会,输入服务器IP ,端口,以及用户名和密码即可连接进去,然后就是命令行操作,写代码也只能用vim 逐个字母的敲,体验非常不好,所以我觉得xshell仍然需要,可以运行离线任务,可以上传和下载文件,这些还是蛮方便的,对于开发而言就要用vscode了,接下来看看vscode怎么连接服务器吧。

首先保证安装了插件remote-ssh,然后会在左侧出现一个新的图标,
点击这个图标后,然后点SSH TARGETS的加号

输入 用户名@服务器IP

然后选这个进去编辑一下,把端口加上 Port 端口号 ,保存即可。

然后在保存的服务器,右键连接,之后输入正确的密码就可以成功连接。

连接后,就可以选择打开服务器的某个目录,然后对该目录进行开发即可,这个和本地的open folder 差不多,这个时候基本就可以完成服务器远程开发了。
选择对应代码进行修改,然后在下面的命令行运行。

怎么像在本地运行代码一样既可以调试还可以补齐?

点击左侧最下面的扩展包图标,然后有本地和SSH两个选项,点击SSH右侧的下载按钮,会让你选择本地的哪些包需要下载,你全选就可以了。
其中最重要的python扩展包,下载后会让你选择服务器的开发环境,也就是解释器路径,和本地的道理相同,你选择你想使用的开发环境即可,这个可以随时更换。

全部安装好后,就是这个画面,左下角有对应的IP和以及服务器解释器的名字,右上角也有运行小三角按钮,命令行也可以执行,这样的话就完成了所有的配置。
这个时候你只需要点开任意一个代码享受本地编辑的快感吧,代码补全之类的功能都可以噢!


转载:https://blog.csdn.net/qq_36206070/article/details/116464466
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场