
如何用 VS Code Dev Container 搭建 Lean 跨平台开发环境并打开容器【免费下载链接】LeanLean Algorithmic Trading Engine by QuantConnect (Python, C#)项目地址: https://gitcode.com/GitHub_Trending/le/Lean想在本地 Visual Studio Code 中开发 Lean 引擎又不希望在每种操作系统上分别安装全部依赖可以使用 Lean 仓库自带的 Dev Container在一个统一预装依赖的 Docker 环境中完成开发。仓库文档 .vscode/readme.md 给出了本地开发三种方式本文按其中的 “Option 2: Lean Development Container” 展开一个 docker 环境所有依赖预装用于跨平台开发 Lean文档认为它适合开源贡献者使用。目标是进入可用的 Lean 开发容器并在进入后完成首次构建与启动验证。准备条件按 readme 的清单开始之前宿主机需要完成三件事安装 Visual Studio Code并安装 Remote Containers 扩展ms-vscode-remote.remote-containers。安装 Docker按你操作系统的说明安装。在终端拉取 Lean 最新的 research 镜像docker pull quantconnect/research:latest这个镜像是开发容器的基础。仓库中的 .devcontainer/Dockerfile 用FROM quantconnect/research:latest声明了基础镜像并在此基础上安装 dos2unix 工具转换 Windows 换行格式以及安装quantconnect-stubs这个 Python 包用于 Python 自动补全。把 Lean 仓库打开到 VS Code下载仓库或使用 Git 克隆git clone https://github.com/QuantConnect/Lean然后用 VS Code 打开该文件夹。容器配置在仓库的 .devcontainer/devcontainer.json 中VS Code 打开文件夹后会自动识别。该文件里的关键配置workspaceMount/workspaceFolder把本地工作区绑定挂载到容器内的/Lean并以/Lean作为工作文件夹build使用同目录的 Dockerfile 构建容器runArgs: [--networkhost]使用宿主机相同的网络配置文档注释说明这是为了避免防火墙、代理等问题customizations.vscode.extensions容器创建时自动安装 C# Dev Kitms-dotnettools.csdevkit、Pythonms-python.python、GitLens、Markdown All in One、SonarLintpostCreateCommand容器创建后执行dotnet nuget add source /Lean/LocalPackages为.vscode/launch_research.sh添加可执行权限并用 dos2unix 转换换行mounts为额外挂载本地文件预留见“可选挂载额外本地文件”一节。打开开发容器在 VS Code 中已打开 Lean 仓库的前提下任选其一打开容器在 VS Code 弹出的提示框中选择 Reopen in Container或按 CtrlShiftP 打开命令面板选择 Remote-Containers: Rebuild and Reopen in Container。首次打开时 VS Code 会构建容器镜像并按配置安装扩展等待其准备完成即可。文档给出的进入判断是此时你应该已经在开发容器中You should now be in the development container, give VS Code a moment to prepare and you will be ready to go!。readme 还提示首次打开工作区时 VS Code 会提示安装推荐扩展C#、C# Dev Kit、Python也可以手动安装或按 .vscode/extensions.json 中的推荐列表安装。首次构建与启动进入容器后可以按 readme 中 “How to use Lean” 一节的流程做第一次构建和运行。该节明确说明只适用于 Option 2开发容器不适用于 Lean CLI。核对配置确认Launcher/config.json中算法相关配置正确。文档给出的配置示例值中AlgorithmName需要替换为你实际的算法类名/文件名Python 算法algorithm-type-name: AlgorithmName, algorithm-language: Python, algorithm-location: ../../../Algorithm.Python/AlgorithmName.pyC# 算法algorithm-type-name: AlgorithmName, algorithm-language: CSharp, algorithm-location: QuantConnect.Algorithm.CSharp.dll构建在 VS Code 中运行构建任务CtrlShiftB 或 “Terminal” 下拉菜单。.vscode/tasks.json 定义了以下任务build默认构建任务构建一次 Leanrebuild完整重建遇到调试符号无法加载到你的算法时使用clean删除所有项目构建文件test运行单元测试需要先构建。注意 tasks.json 开头的注释使用这些构建任务需要 dotnet 在系统路径上可用。启动在 Run Debug 面板使用 Launch 启动项会以 C# 调试方式启动 LeanLean C# 代码中的断点会被触发。可选延伸Python 算法调试需要额外配置。在Launcher/config.json的 debugging configuration 注释下设置debugging: true, debugging-method: DebugPy,设置后 Lean 会在初始化时停止并等待调试器通过端口 5678 连接。用上面的 Launch 启动 Lean 后应看到如下输出文档示例20200715 17:12:06.546 Trace:: PythonInitializer.Initialize(): ended 20200715 17:12:06.547 Trace:: DebuggerHelper.Initialize(): python initialization done 20200715 17:12:06.547 Trace:: DebuggerHelper.Initialize(): starting... 20200715 17:12:06.548 Trace:: DebuggerHelper.Initialize(): waiting for debugger to attach at localhost:5678...看到该消息后使用启动项 Attach to Python 并按 runVS Code 即进入 Python 调试Python 算法中的断点会被触发。可选挂载额外本地文件如需把额外本地文件例如本地数据目录挂载进容器在 devcontainer.json 的mounts部分添加条目。文件中带有一行注释掉的示例其中C:/Users/XXXXXXXXXXXX/Lean/Data需要替换为你机器上的实际路径sourceC:/Users/XXXXXXXXXXXX/Lean/Data,target/Data,typebind,consistencycached注释说明 target 必须使用Config.json中对应的目标目录。任何挂载变更后必须通过命令面板重新构建容器即上文的 Remote-Containers: Rebuild and Reopen in Container。常见问题readme 的 Common Issues 一节列出了三个与该环境搭建直接相关的已知问题出现 project file cannot be loaded 或 nuget packages not found 错误原因是项目文件被宿主机上的其他进程占用。关闭所有应用或重启电脑可解决。Omnisharp 的自动补全和引用查找偶尔出 bug用命令面板执行 OmniSharp: Restart OmniSharpCtrlShiftP 搜索。VS Code 中指向 JSON 注释的报错仓库的 JSON 配置文件含有注释选择ignore忽略即可或按文档所指的方法彻底移除这类报错。【免费下载链接】LeanLean Algorithmic Trading Engine by QuantConnect (Python, C#)项目地址: https://gitcode.com/GitHub_Trending/le/Lean创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考