Docker部署Code-Server,实现远程写代码

news/2025/11/13 20:49:07/文章来源:https://www.cnblogs.com/zqingyang/p/19219504

参考:使用 Docker 部署 VS Code in The Browser - 谱次· - 博客园

hub.docker.com/r/codercom/code-server

介绍

GitHub:https://github.com/coder/code-server

在日常学习工作中,Vscode 已成为我们首选的代码编辑器。然而,其局限性在于当我们从家到公司移动时,难以保持连续的编码体验。针对这一痛点,虽然市面上已有如 Visual Studio Codespaces、Cloudstudio 和 CloudIDE 等 在线编辑器(Web IDE)可供选择,但它们要么处于测试阶段,要么免费使用存在限制或价格较高,目前并非完美之选。因此,若想以较低成本实现连续、流畅的编码体验,此时自主搭建一个在线编辑器或许是个值得考虑的好方案。

Code-Server 是由 Coder 开发的,把 VS Code 搬到了浏览器上。
我们可以在任何地方的任何机器上运行 Code-Server 然后通过浏览器访问它。

特点

Code Server,作为一款开源代码编辑器,完美地将 Visual Studio Code 的强大功能融入到了 Web 浏览器中。它不仅具备基本的代码编辑、语法高亮、智能感知和自动补全等特性,更支持多人协作和远程开发,为开发者提供了前所未有的便捷体验。

这种能够在浏览器中运行的集成开发环境,通常被称为 Cloud IDE,而 Code Server 正是其中的佼佼者。无论是本地计算机还是云服务器,只需部署 Code Server,用户即可通过浏览器随时随地访问并使用其中的编辑器功能,无需额外安装本地编辑器。

Code Server 的这一特性极大地便利了远程开发、多人协作以及快速搭建开发环境等操作。此外,它还支持丰富的自定义插件和扩展,满足了不同用户的个性化需求,使得开发过程更加高效、灵活。

安装code-server

下载镜像

docker pull codercom/code-server:latest

创建目录

sudo mkdir /opt/docker-stacks/vscode/data -p 
sudo mkdir /opt/docker-stacks/vscode/projects -p 
cd /opt/docker-stacks/vscode

赋予写入权限

为这个用户授予主机上挂载目录的写入权限。

# 更改目录的所有者
# 这会将这两个目录的所有权更改为当前登录的用户
# (也就是你即将用来执行 docker run 的用户)
sudo chown -R $(id -u):$(id -g) /opt/docker-stacks/vscode/data
sudo chown -R $(id -u):$(id -g) /opt/docker-stacks/vscode/projects

启用容器

docker run -d \--name code-server \-p 9010:8080 \-e PASSWORD=BrbkQd4fv1t \-e XDG_DATA_HOME=/home/coder/.config \-v /opt/docker-stacks/vscode/data:/home/coder/.config \-v /opt/docker-stacks/vscode/projects:/home/coder/project \-u $(id -u):$(id -g) \-w /home/coder/project \--restart unless-stopped \codercom/code-server:latest

说明

 -d #(后台分离)--name code-server #设置名称-p 9010:8080 #端口映射-e PASSWORD=BrbkQd4fv1t #服务密码,自定义-e XDG_DATA_HOME=/home/coder/.config #不要把数据(插件)放到默认的 .local/share 了,请你把它们也放到 .config 目录里-v /opt/docker-stacks/vscode/data:/home/coder/.config #保存 VS Code 的配置和插件-v /opt/docker-stacks/vscode/projects:/home/coder/project #存放你实际的项目代码-u $(id -u):$(id -g) # 强制容器使用你当前宿主机的用户 ID 和组 ID 运行-w /home/coder/project #绑定资源管理器在这个文件夹--restart unless-stopped #自动重启codercom/code-server:latest #镜像

若是你弄错了

docker stop code-server 
docker rm code-server

验证容器

docker ps -a

访问验证

使用浏览器访问 VS Code 前台 http://192.168.37.100:9010

填写我们启用容器时 配置的密码

更换主题

image
image

中文配置

安装简体中文语言包:@category:"language packs"
image

打开搜索框,输入:> configure display language 回车,允许重启界面
image

重启服务后生效

安装C/C++环境

注意:

code-server 和 Windows 上的 VS Code 没有使用同一个“应用商店”

  1. VS Code (Windows/Mac/Linux)

    • 它使用的是 Visual Studio Marketplace(VS 市场)。

    • 这是微软官方的、专有的(Proprietary)市场。

    • 熟悉的那个 "C/C++" 扩展,是由微软自己开发的 (ID: ms-vscode.cpptools)。它功能强大,但不开源,并且其许可证禁止在非微软产品中使用。

  2. code-server (以及 VSCodium 等)

    • 由于 code-server 是一个开源项目,它无法合法地访问或使用微软的专有 VS 市场。

    • 它使用的是一个独立的、开源的替代品:Open VSX Registry (Open VSX 市场)。

    • 这个市场只包含真正开源的扩展。

安装 clangd (开源替代品)

在开源世界中,C/C++ 开发的标准工具是 clangd。它是一个功能极其强大的语言服务器(Language Server),提供了需要的所有功能(代码补全、跳转、错误检查等)。

code-server 中安装 clangd 扩展

  1. 打开你的 code-server 界面。

  2. 转到“扩展”面板。

  3. 搜索 clangd

  4. 安装由 LLVM Team 发布的那个(ID: llvm-vs-code-extensions.vscode-clangd)。
    image

在 Docker 容器内安装 clangd 程序

clangd 扩展 只是一个“前端”,它需要 clangd 这个“后端”程序才能工作。必须把这个程序安装到 code-server 容器里。

  1. 打开你的Ubuntu服务器终端。

  2. 使用 docker exec 命令进入正在运行的 code-server 容器:

​ 直接以 root 身份 exec

# 在你的ubuntu主机服务器上执行这个
docker exec -it -u root code-server bash
  1. 现在你是 root 用户了,在容器内部安装 clangd

    # (在容器内部,以 root 身份)
    apt-get update
    apt-get install clangd -y
    
  2. 安装完成后,输入 exit 退出容器。

重启 code-server

  1. 重启你的容器以确保所有环境都已加载:

    docker restart code-server
    
  2. 重新打开 code-server 的 Web 界面。当你打开一个 C/C++ 项目时,clangd 扩展会自动启动,你应该就能获得所有代码智能提示了。


提示: clangd 依赖 compile_commands.json 文件来理解你的项目(比如头文件路径)。对于复杂的项目,你最好使用 CMake (它会自动生成这个文件) 或 bear (一个可以生成它的工具) 来配置你的项目。

安装 C 编译器

安装 gccmake

你需要再次进入你的 Docker 容器,安装 gccmake 等工具。

  1. 在你的服务器终端上,以 root 身份进入容器:

    docker exec -it -u root code-server bash
    
  2. 容器内部(你现在是 root),安装 build-essential 包。这是一个包含 gccg++make 的标准工具包:

    # (在容器内部,以 root 身份)
    apt-get update
    apt-get install build-essential -y
    
  3. 安装完成后,输入 exit 退出容器。

创建 C 文件

现在回到你的浏览器,打开 code-server 界面。

  1. 在左侧的“资源管理器”(Explorer)面板中,你应该能看到你挂载的 project 文件夹(它对应你主机上的 /opt/docker-stacks/vscode/projects)。

  2. 右键点击 project 文件夹,选择“新建文件”(New File)。

  3. 将文件命名为 main.c

编写代码

code-server 会自动打开 main.c。在编辑器中输入以下“Hello World”代码:

#include <stdio.h>int main() {printf("Hello, C from code-server!\n");return 0;
}

验证 clangd

  • 观察1: 代码应该有语法高亮。

  • 观察2: 稍等几秒,clangd 会在后台运行。如果你有拼写错误(比如把 printf 写成 printx),clangd 应该会给你画出红色的波浪线。这证明 clangd 扩展正在工作。

编译并运行

使用 code-server 内置的终端来编译和运行你刚刚写的 C 代码。

  1. code-server 顶部的菜单栏,点击 “终端”(Terminal) -> “新建终端”(New Terminal)。
    image

  2. 一个终端面板会出现在屏幕底部。它默认应该在 /home/coder 目录下。

  3. 输入以下命令:

    # 切换到你的项目目录
    cd ~/project# 验证 main.c 文件是否存在
    ls
    # (你应该能看到 "main.c")# 编译你的C代码
    # 我们使用 gcc (你刚装的) 来编译 main.c,并输出一个名为 "hello" 的程序
    gcc main.c -o hello# 运行你的程序
    ./hello
    

如果一切顺利,你将在 code-server 的终端中看到以下输出:

coder@aa09b4ffe05d:~/project/hello$ ./hello
Hello, C from code-server!
  1. code-server 作为编辑器。

  2. clangd 提供代码智能提示。

  3. gcc 作为编译器。

  4. 你的项目文件 (main.c) 和编译后的程序 (hello) 都安全地持久化保存在你主机的 /opt/projects 目录中。

安装 Code Runner

和在容器里安装的 gcc 完美配合,实现“一键编译运行”。

Code Runner 本身不是编译器,它只是一个“快捷方式”工具。它的工作原理就是帮你自动执行你在终端输入的那些命令(比如 gcc main.c -o main && ./main)。


安装 Code Runner 扩展

  • 在你的 code-server 网页界面中,点击左侧的“扩展”(Extensions)图标。

  • 在搜索框中输入 Code Runner

  • 找到那个作者是 formulahendry 的扩展(它非常受欢迎),点击“Install”。

配置输出

默认情况下,Code Runner“输出 (Output)”面板中运行代码。这个面板是只读的,它无法处理需要用户输入的程序(例如 scanf)。修改设置,让 Code Runner 始终在“终端 (Terminal)”中运行代码。

左下角齿轮(管理)--设置---扩展---找到run code configuration---勾选Run In Terminal

image

  1. 一键运行

    • 重新打开你的 main.c 文件。

    • 你会发现在界面的右上角出现了一个“播放按钮”(▶️ Run Code)。

    • 点击这个播放按钮

  2. 查看结果

    • 屏幕底部的“输出”(OUTPUT)面板会自动弹出,并显示:
    coder@e36bf1f8bb5e:~/project$ cd "/home/coder/project/hello/" && gcc main.c -o main && "/home/coder/project/hello/"main
    Hello, C from code-server!
    coder@e36bf1f8bb5e:~/project/hello$ 
    

安装CMake To ols

CMake To ols (by Microsoft)

  • 作用: 这是在 VS Code 中管理 C/C++ 项目的事实标准。它提供一键配置、构建、运行和调试 CMake 项目的功能。

安装 CMake ToolsCode Runner 一样,只是一个“前端”扩展。它需要你在容器内部安装后端的 cmake 程序才能工作。

进入容器:

# 在你的服务器终端上执行
docker exec -it -u root code-server bash# --- 现在你在容器内部 ---
apt-get update
apt-get install cmake gdb -y
# (cmake: 用于构建)
# (gdb: 用于调试)# --- 安装完成后 ---
exit

安装CMake

CMake (by twxs)

  • 作用:CMakeLists.txt 文件提供语法高亮和命令补全。

安装markdownlint

  • markdownlint
    • 作用: 检查你写的 README.md 等 Markdown 文件的语法规范。

安装Prettier - Code formatter

  • Prettier - Code formatter
    • 作用: 自动格式化代码。

    • 不过要注意,Prettier 默认不格式化 C/C++。它主要用于 JSONMarkdownJavaScript 等文件。

    • (对于 C/C++,clangd 扩展已经集成了 clang-format,它会负责格式化你的 .c 文件)


安装C/C++ Themes

  • C/C++ Themes
    • 作用: 更改编辑器的颜色主题。如果你对默认主题不满意,就安装。

安装VS Code Counter

  • VS Code Counter
    • 作用: 统计你的项目中有多少行代码。

总结

已有的 C++ 配置:

  1. 语言服务器 (代码补全): clangd (扩展)

  2. 构建系统 (项目管理): CMake Tools + CMake (扩展)

  3. 快捷运行 (单文件): Code Runner (扩展)

  4. 后端工具 (在容器里):

    • build-essential (包含 gccg++ 编译器)

    • clangd (语言服务器后端)

    • cmake (构建工具后端)

    • gdb (调试器后端)

安装Python环境

code-server 添加 Python 支持,逻辑和配置 C++ 完全一样

  1. code-server 网页中安装“前端”扩展。

  2. 在 Docker 容器中安装“后端”工具 (Python 解释器、包管理器)。

安装 Python 扩展

转到“扩展”面板,搜索并安装:

  • Python
    • ID: ms-python.python ms-python
      • 发布者: Microsoft
      • 作用: 这是最核心的官方 Python 扩展。它提供了 C++ 的 clangd + CMake Tools 的所有功能,包括:
        • 语法高亮

          • 代码补全 (使用 JediPylance)

          • 代码检查 (Linting)

          • 调试 (Debugging)

          • Jupyter Notebooks 支持

注意: code-server (Open VSX) 可以搜索到这个 ms-python.python 扩展。它和微软的 C/C++ 扩展不同,这个是开源的,可以合法使用。你只需要这一个核心扩展就够了。

安装 Python 后端工具

Code RunnerPython 扩展需要一个真实的 Python 解释器才能工作。

  1. 在你的服务器终端上,以 root 身份进入容器:

    docker exec -it -u root code-server bash
    
  2. 容器内部(你现在是 root),安装 Python 解释器、包管理器 (pip) 和虚拟环境工具 (venv):

    # (在容器内部,以 root 身份)
    apt-get update
    apt-get install python3 python3-pip python3-venv -y
    
    • python3: Python 解释器(Code Runner 会用它来运行 .py 文件)。

    • python3-pip: Python 的包管理器(用于安装 numpy, requests 等库)。

    • python3-venv: 极其重要的虚拟环境工具。

  3. 安装完成后,输入 exit 退出容器。

(重要!) Python 的正确工作流

和 C++ 不同,Python 强烈依赖虚拟环境 (virtual environments) 来隔离不同项目的库。

这是你在 code-server开始一个新 Python 项目的正确方式:

  1. 打开终端:code-server 网页中,点击“终端” -> “新建终端”。

  2. 进入项目目录:

    cd ~/project
    mkdir my_python_project
    cd my_python_project
    
  3. 创建虚拟环境:

    # 这会创建一个名为 .venv 的文件夹来存放你的 Python 库
    python3 -m venv .venv
    
  4. 激活虚拟环境:

    # 激活环境
    source .venv/bin/activate
    # (你会看到终端提示符前面多了 (.venv) )
    
  5. 安装库:

    # 示例:安装一个库
    pip install numpy
    
  6. 选择解释器 (关键一步):

    • 最上面搜索栏,输入并选择 >Python: Select Interpreter

    • 选择那个带有 ./.venv/bin/python 的选项。

image

完成!现在,code-server 的代码补全、调试器和 Code Runner 都会使用你这个隔离的 .venv 环境,这能避免未来无数的麻烦。

测试

编写一个简短的程序,它会验证以下所有内容

  1. Python 解释器 (python3) 正在工作。
  2. 虚拟环境 (venv) 能够被创建和激活。
  3. 包管理器 (pip) 可以下载和安装外部库 (我们将使用 requests)。
  4. Code Runner (播放按钮) 能够正确找到并使用这个虚拟环境。

步骤 1:在 code-server 中创建项目

  1. code-server 的文件资源管理器中,右键点击你的 project 目录。
  2. 选择 “新建文件夹” (New Folder),命名为 python_test
  3. 右键点击你刚创建的 python_test 文件夹。
  4. 选择 “新建文件” (New File),命名为 main.py

步骤 2:粘贴示例代码

将下面的代码复制并粘贴到你刚打开的 main.py 文件中:

import sys
import requests # 导入一个外部库print("====================================")
print("🐍 Python 环境验证程序 🐍")
print("====================================")# 1. 打印 Python 路径
#    这会验证我们是否正在使用虚拟环境 (.venv) 中的 Python
print(f"✅ 1. Python 解释器路径:")
print(f"   {sys.executable}\n")# 2. 验证外部库
#    这会验证 pip 和 venv 是否工作正常
print("✅ 2. 正在测试 'requests' 库...")
try:response = requests.get("https://httpbin.org/get")if response.status_code == 200:print("   SUCCESS! 成功从 httpbin.org 获取数据。")data = response.json()print(f"   你的IP地址是:{data.get('origin')}\n")else:print(f"   FAILURE. 状态码: {response.status_code}\n")except ImportError:print("   FAILURE: 'requests' 库未找到。")print("   请确认你已激活 venv 并运行了 'pip install requests'。\n")
except Exception as e:print(f"   FAILURE. 发生网络或其他错误: {e}\n")print("====================================")
print("🎉 验证完毕!")
print("====================================")

步骤 3:(在终端中) 创建并激活虚拟环境

  1. code-server 顶部菜单栏,点击 “终端” -> “新建终端”。

  2. 在终端中,进入你的测试项目并创建 venv

    Bash

    # 切换到你的新项目目录
    cd ~/project/my_python_project/python_test# 创建虚拟环境 (这会创建一个 .venv 文件夹)
    python3 -m venv .venv
    
  3. 激活这个虚拟环境:

    source .venv/bin/activate
    

    (你的终端提示符现在应该变成了 (.venv) coder@...)

步骤 4:(在终端中) 安装外部库

已激活的终端中(即你看到 (.venv) 提示符),使用 pip 安装 requests 库:

pip install requests

(你应该会看到它成功下载并安装了 requests 及其依赖项)

步骤 5:(关键!) 选择解释器

  1. 打开命令面板搜索框。

  2. 输入并选择 >Python: Select Interpreter (Python: 选择解释器)。

  3. 在弹出的列表中,选择那个带有 .venv 的选项,它看起来像:

    Python 3.x.x ('.venv': venv) ./bin/python

为什么这步很重要?

这一步是告诉 Code Runner (播放按钮) 和 Python 插件:“当运行这个项目时,请使用我这个 .venv 里的 Python 和它安装的 requests 库,而不是系统里的 Python。”

步骤 6:运行!

现在,点击 code-server 右上角的“▶️”(播放)按钮。


若报错,在你当前的这个终端(就是你粘贴给我的那个,显示 .../python_test$ 的终端),直接运行以下命令:

pip install requests

它会为你当前激活的 (.venv) 环境安装 requests 库。


安装完成后,在同一个终端里,再次运行你之前的命令:

python -u "/home/coder/project/my_python_project/python_test/main.py"

这一次,python 解释器就能找到 requests,你的脚本将会成功运行并输出结果!

✅ 预期成功输出

如果一切配置正确,你的“终端”面板应该会显示如下内容:

[Running] source /home/coder/project/python_test/.venv/bin/activate && python ...
====================================
🐍 Python 环境验证程序 🐍
====================================
✅ 1. Python 解释器路径:/home/coder/project/python_test/.venv/bin/python✅ 2. 正在测试 'requests' 库...SUCCESS! 成功从 httpbin.org 获取数据。你的IP地址是:x.x.x.x====================================
🎉 验证完毕!
====================================
[Done]

成功的关键标志:

  1. 解释器路径明确指向 .../python_test/.venv/bin/python
  2. requests 库成功运行并抓取到了你的 IP 地址。

总结

  • Python:

    1. (网页) 安装 ms-python.python 扩展。

    2. (容器) apt-get install python3 python3-pip python3-venv

    3. (工作流) 始终使用 python3 -m venv .venvPython: Select Interpreter

备注


Python 虚拟环境 (.venv) 和 C 项目

这是一个关于“上下文(Context)”的绝佳问题。

a) 运行 C 项目需要退出 (.venv) 吗?

不需要。你完全可以(.venv) 激活的状态下运行 C 项目,不会有任何问题

  • 原因: (.venv) 只是一个 Python 虚拟环境。source .venv/bin/activate 这个命令所做的唯一一件事,就是修改你当前终端的 $PATH 环境变量,让 pythonpip 命令指向 .venv 文件夹里的版本。

  • 不会影响 gcc, g++, cmake, make 这些系统命令。当你运行 gcc 时,系统依然会去 /usr/bin/gcc 找它。

最佳实践:

  • 技术上: 不需要退出。

  • 管理上: 为了保持头脑清晰,当你明确要切换到 C/C++ 项目时,在终端里输入 deactivate 命令来退出 (.venv) 是一个好习惯。

  • deactivateactivate 的反向命令,它会让你回到基础的 coder@... 提示符。

b) source .venv/bin/activate 需要每次都执行吗?

是的,需要。

activate 命令只对当前的终端会话有效。

  • 如果你关闭code-server 里的终端面板。

  • 或者你点击“+”号打开一个新的终端。

那个新的终端将会是“干净”的,它没有激活任何 venv

因此,你的工作流应该是:

  1. code-server 中打开一个终端。

  2. cd 到你的 Python 项目目录 (例如 cd project/my_python_project)。

  3. 每一次,你都需要运行 source .venv/bin/activate 来激活该项目的环境。

自动激活提示:

幸运的是,Python 扩展很智能。当你按照我的建议使用 Python: Select Interpreter 选择过一次 .venv 里的解释器后:

  1. Code Runner(播放按钮)会自动使用正确的 venv 运行,你不需要在终端里 activate

  2. 当你打开一个新的终端时,code-server 可能会自动检测.venv 并提示你是否要激活它。


说明文档

欢迎使用这个预先配置好的 code-server 开发环境。你不需要在自己的电脑上安装任何复杂的工具,只需要一个浏览器,就可以开始 C、C++ 和 Python 的学习与开发。

1. 我们的开发环境总览

1.1 什么是 Code-Server?

简单来说,Code-Server 就是一个运行在服务器上、可以通过浏览器访问的 Visual Studio Code (VS Code)

  • 你所有的代码和项目都保存在服务器的 /opt/docker-stacks/vscode/projects 目录中。

  • 你所有的插件和个人配置都保存在服务器的 /opt/docker-stacks/vscode/data 目录中。

  • 你所有的工作都会被自动保存。 即使服务器重启,你的所有配置和容器也会自动恢复。

1.2 这是一个“全能”开发环境

我们已经为你安装并配置好了一系列强大的工具和插件,让你可以“开箱即用”。

已安装的后端工具 (在容器内):

  • C/C++: gcc, g++ (编译器), gdb (调试器)

  • C/C++ 增强: clangd (语言服务器), cmake (构建工具)

  • Python: python3, pip (包管理器), venv (虚拟环境)

已安装的核心插件 (在 Code-Server 中):

插件名称 功能说明
通用
Chinese (Simplified) 中文界面。提供完整的中文汉化。
Code Runner 一键运行。提供右上角的“▶️”播放按钮,用于快速编译和运行单文件。
Prettier / markdownlint 代码格式化和 Markdown 检查工具。
C/C++ (CPP)
clangd C/C++ 核心支持。提供比官方 C++ 插件更快的代码补全、错误检查和语法跳转。
CMake / CMake Tools C/C++ 项目管理。用于专业多文件项目的构建、管理和调试。
Python (PY)
Python Python 核心支持。提供代码补全、调试、虚拟环境管理和 Jupyter 支持。

2. 编写和运行 C 语言项目

我们使用 gcc 编译器和 clangd 语言服务器。

2.1 推荐流程 (Code Runner 一键运行)

这是最适合单个文件练习的方法。

  1. 在左侧“资源管理器”的 project 文件夹下新建一个文件,例如 hello.c

  2. 编写你的 C 代码(例如 "Hello World")。

  3. 点击右上角的“▶️”(播放)按钮。

  4. 在底部的“终端”面板查看运行结果。

2.2 传统流程 (使用终端)

  1. code-server 顶部菜单选择 “终端” -> “新建终端”。

  2. cd 进入你的项目目录:cd project

  3. 使用 gcc 编译你的代码:gcc hello.c -o hello

  4. 运行你的程序:./hello

2.3 ⚠️ 注意事项

  • clangd (代码补全) 可能需要几秒钟来启动。

  • Code Runner(播放按钮)非常适合单个文件,但对于需要链接多个 .c 文件和库的大型项目,你应学习使用 makecmake


3. 编写和运行 C++ (CPP) 项目

我们使用 g++ 编译器、clangd 语言服务器和 CMake 项目工具。

3.1 简单单文件项目 (Code Runner)

这和 C 语言完全一样。

  1. 新建一个文件,例如 hello.cpp

  2. 编写你的 C++ 代码。

  3. 点击右上角的“▶️”(播放)按钮。

3.2 推荐:专业项目 (使用 CMake Tools)

对于超过一个文件的 C++ 项目,你必须使用构建系统。CMake 是标准。

  1. project 下创建一个新文件夹,例如 my_cpp_project

  2. 在该文件夹中创建 main.cppCMakeLists.txt 文件。

  3. CMake Tools 插件会自动检测到 CMakeLists.txt

  4. 使用 code-server 底部状态栏的 CMake 按钮(或按 Ctrl+Shift+P 搜索 CMake: Configure)来配置和构建项目。

  5. 构建成功后,点击状态栏上的“运行”或“调试”按钮来执行你的程序。

3.3 ⚠️ 注意事项

  • C++ 项目 ≠ 单文件。请尽快学会使用 CMakeLists.txt 来管理你的项目,这是 C++ 开发的必备技能。

  • clangd 依赖 CMake 生成的配置来找到头文件(例如 iostream)。如果你的代码补全不工作,请先确保你的 CMake 项目已经成功“配置 (Configure)”过。


4. 编写和运行 Python 项目 (重要!)

Python 使用 python3 解释器,并且强烈依赖“虚拟环境”

4.1 为什么需要“虚拟环境” (venv)?

你的 C/C++ 库是“系统级”的,但 Python 库是“项目级”的。项目 A 可能需要 numpy 1.20,而项目 B 需要 numpy 1.25

“虚拟环境” (.venv) 就是一个隔离的文件夹,它只存放当前项目所需的特定版本的库,避免项目之间产生冲突。

规则:一个 Python 项目 = 一个虚拟环境。

4.2 你的标准工作流程

步骤一:创建项目 (每个项目只需做一次)

  1. project 下为你的新项目创建一个文件夹:

    cd ~/project/my_python_project
    mkdir my_python_project
    cd my_python_project
    
  2. 在该项目文件夹内,创建虚拟环境:

    python3 -m venv .venv
    

    (你会看到一个 .venv 文件夹被创建了)

步骤二:选择解释器 (每个项目只需做一次)

  1. Ctrl+Shift+P 打开命令面板。

  2. 搜索并选择 Python: Select Interpreter

  3. 选择那个带有 ./.venv/bin/python 的选项。

    (这会告诉 Code Runner 和 Python 插件使用你的虚拟环境)

步骤三:日常开发 (激活与安装)

这是你每次打开项目或新终端时都需要做的!

  1. code-server 中打开一个终端。

  2. cd 到你的 Python 项目目录 (例如 cd project/my_python_project)。

  3. 每一次,你都需要运行 source .venv/bin/activate 来激活该项目的环境。

    (激活后,你的终端提示符会像这样:(.venv) coder@...)

  4. 现在,你可以使用 pip 安全地安装库了:

    pip install numpy pandas # 库会安装到 .venv 中
    

步骤四:运行代码

  1. 创建你的 main.py 文件。

  2. 编写 Python 代码。

  3. 点击右上角的“▶️”(播放)按钮。Code Runner 会自动使用你选定的 .venv 解释器来运行。

4.3 ⚠️ 关键注意事项

  • 永远不要未激活虚拟环境(即没有 (.venv) 提示符)的情况下使用 pip install

  • source .venv/bin/activate 命令只对当前终端有效。如果你关闭终端再打开一个新的,你需要重新运行它。

  • 运行 C/C++ 项目不需要(也不会受)(.venv) 环境影响。如果你想退出 venv,只需在终端输入 deactivate


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/964698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年 11 月电力金具厂家最新推荐,精准检测与稳定性能深度解析!

全球电力系统对核心部件稳定性的依赖度持续攀升,电力金具的质量与性能直接影响输电网络安全。本次 2025 年 11 月电力金具厂家推荐榜单,由国际电力设备检测协会(IPTA)联合全球三大电力工程机构共同发布,测评覆盖全…

2025 年 11 月铁附件厂家最新推荐,聚焦资质、案例、售后的五家企业深度解读!

随着电力工程、光伏发电及基础设施建设领域的全球化推进,铁附件作为核心配套产品,其品质与供应效率对工程质量的影响愈发显著。为精准筛选优质铁附件厂家,本次推荐结合国际电力设备协会(IEPEA)2025 年第三季度测评…

LucaOne模型的词汇表系统

https://github1s.com/lucaone/LucaOne/blob/master/src/models/alphabet.py#L1-L205 通过定义词汇表,就能输入蛋白质或者DNA。 这段代码定义了 LucaOne模型的词汇表系统(Alphabet类),是模型处理不同生物分子序列的核…

v4l2用户侧使用流程

前言 v4l2的用户侧使用方法的简单demo,参考:media/v4l/v4l2grab.c 实际上,v4l2的用户侧有libv4l开源库。用户可以使用此开源库快速搭建其用户侧代码。 流程 int main() {// openfd = v4l2_open("/dev/video0&q…

2025 年终端数据安全软件公司推荐数篷科技(深圳)有限公司,数据安全领域的坚实力量

在数字化浪潮席卷全球的当下,数据已然成为企业的核心资产,其安全防护至关重要。随着 AI、云计算等新兴技术的广泛应用,数据安全面临着前所未有的挑战,如数据泄露、非法访问等风险日益加剧。在此背景下,一款可靠的…

Day37(7)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01\springboot-web-01

HTTP状态码大全 https://cloud.tencent.com/developer/chapter/13553package com.itheima;import jakarta.servlet.http.HttpServletResponse; import org.springframework.http.ResponseEntity; import org.springfra…

网络协议工程 - eNSP及相关软件安装 - [eNSP, VirtualBox, WinPcap, Wireshark, Win7] - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20232314 2025-2026-1 《网络与系统攻防技术》实验五实验报告

一、实验内容从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取信息。 尝试获取BBS、论坛、QQ、MSN中某一好友的IP地址,并查询获取该好友所在的具体地理位置。 使用nmap开源软件对靶机环境…

深度学习实验一之图像特征提取和深度学习训练数据标注 - 实践

深度学习实验一之图像特征提取和深度学习训练数据标注 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

题解:ABC232G Modulo Shortest Path

由于 \(\forall i,a_i < m,b_i < m\),所以可能的边权要么是 \(a_i+b_j\),要么是 \(a_i+b_j-m\),下文简称其为一类边和二类边。 暴力建图太浪费了,发现与一个 \(a_i\) 的连边是二类边的 \(b_j\) 的值单调不减…

如何在 Mac 上安装 MySQL 8.0.20.dmg(从下载到使用全流程,附安装包)

如何在 Mac 上安装 MySQL 8.0.20.dmg(从下载到使用全流程,附安装包)​手把手教你如何通过 .dmg 安装包安装 MySQL 8.0.20 数据库。一、下载安装包(如果你还没下) 安装包下载:https://pan.quark.cn/s/459eb1a02c4…

题解:P3791 普通数学题

考虑做类似数位 dp 的东西。 首先把 \(n,m\) 各加一,限制转换为 \(i<n,j<m\)。 套路地枚举 \(i,j\) 和 \(n,m\) 二进制下第一个不同的位置,则更低位就可以任取了。不难发现这个时候 \(i \operatorname{xor} j …

芒格变富的逻辑

芒格变富的逻辑 金钱:金钱只是数字,资产才有价值。能带来现金流的东西。 如何变的富有: 别去羡慕蠢人,人要靠自己自律、耐心、量入为出、长期复利(缓慢寻找有价值的团队合作,以合理的价格买好公司(慢慢寻找好资…

基于Ai元人文构想的关系图

基于Ai元人文构想的关系图 基于岐金兰的Ai元人文构想,我们绘制了一个更全面、更深入的「AI元人文构想与价值工程生态系统」关系图,它展示了从基础资源到文明愿景的完整架构。 flowchart TDsubgraph A [基础资源层]A1…

题解:P10360 [PA 2024] Desant 3

很妙的一道题。 首先我们肯定有一个 $O\left ( 2^n\operatorname{poly}\left ( n,m \right ) \right ) $ 的做法,但这无法通过 \(n \leq 35\)。 考虑把状态用 \(0,1,?\) 来表示,其中 \(?\) 表示这个士兵状态仍未决…

软件项目管理工具推荐|飞书项目 vs Asana vs ClickUp vs Jira

文章将深入分析四款主流项目管理工具在需求管理、缺陷追踪、测试管理、产品协作等软件研发的关键场景中的差异与优势,帮助研发团队评估哪款工具更契合自身工作模式。 无论你是敏捷开发团队、产品经理,还是工程管理者…

题解:AT_abc232_g [ABC232G] Modulo Shortest Path

由于 \(\forall i,a_i < m,b_i < m\),所以可能的边权要么是 \(a_i+b_j\),要么是 \(a_i+b_j-m\),下文简称其为一类边和二类边。 暴力建图太浪费了,发现与一个 \(a_i\) 的连边是二类边的 \(b_j\) 的值单调不减…

dify插件开发

自定义模型供应商 当我们想使用的模型在dify官方平台上没有对应的供应商时,我们只能自己集成。 比如公司内部的delphai部署了一些开源模型,我们想集成到dify上,这时需要以插件的形式安装到dify上。(旧版本开发自定义…

其他游戏攻略

自动化游戏 异星工厂:从零开始的零基础异星工厂2.0新手流程攻略。 异形工厂2 戴森球计划 城市建设游戏 都市地平线《citis skylines》《都市天际线》零基础到玩转游戏教程 模拟经营 星露谷物语 魂游 只狼:影逝二度:…