M1 Pro 利用docker 搭建pytho2的开发环境,以vscode连接开发为例

简介: M1 Pro 利用docker 搭建pytho2的开发环境,以vscode连接开发为例

使用 M1 Pro (不支持python2的安装)开发,需要使用 Python 2.7 的环境,在使用 pyenv 安装 Python 2 时遇到了各种奇怪的问题。最终,我决定使用 Docker 搭建开发环境,并使用 VS Code 连接到本地容器。以下是详细的步骤总结(Markdown 格式):

  1. 安装 Docker:首先,确保已在 M1 Pro 上安装了 Docker。可以从 Docker 官方网站下载并按照说明进行安装。
  2. DockerHub 获取合适的python版本,以下以python 2.718为例。

  3. 创建 Dockerfile:在项目根目录下创建一个名为 Dockerfile 的文件。
python:2.7.18
# 设置工作目录
WORKDIR /app
# 复制项目文件到容器中
COPY .  /app
# 设置环境变量
ENV PYTHONPATH=/app
  1. 在 Dockerfile 中,我们使用 Python 2.7.18 的官方镜像作为基础镜像,并设置了工作目录、复制项目文件和安装依赖。
  2. 构建 Docker 镜像:在终端中,进入到包含 Dockerfile 的项目根目录,并运行以下命令来构建 Docker 镜像。
docker build -t my-python2-app .
  1. 这将根据 Dockerfile 中的配置构建一个名为 my-python2-app 的镜像。注意,命令最后的 . 表示使用当前目录作为构建上下文。
  2. 运行 Docker 容器:在终端中,运行以下命令来启动一个基于你构建的镜像的 Docker 容器。
docker run -it --rm -v .:/app  my-python2-app
  1. 这将启动一个交互式的容器,并将当前目录挂载到容器的 /app 目录中。
  2. 安装 VS Code 插件:在 VS Code 中,安装 “Dev Containers” 扩展。这个扩展允许我们连接到 Docker 容器进行开发。

  3. 连接到容器:在 VS Code 中,点击左边的下图图标,然后选择 “在当前窗口附加”。这将显示一个列表,列出了当前正在运行的容器。

  4. 选择容器:从列表中选择刚刚运行的容器。VS Code 将尝试连接到选定的容器。

  • 连接成功,打开工作目录即可看到咱们的文件。
  1. 文件打开成功将显示如下

10. 开发,容器里写的代码,由于前面挂在了目录(-v .:/app),所以会在本地持久化,docker 保持无状态。

如果对你有帮助的话,可以给个小小👍+收藏吗

相关文章
|
2月前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
165 1
|
3天前
|
C# 图形学 C++
使用vscode开发C#+unity没有代码提示问题
使用vscode开发C#+unity没有代码提示问题
9 0
使用vscode开发C#+unity没有代码提示问题
|
26天前
|
应用服务中间件 Shell nginx
mac m1笔记本docker 安装nginx
mac m1笔记本docker 安装nginx
75 4
|
24天前
|
安全 持续交付 Docker
精通 Docker:简化开发、部署与安全保障
精通 Docker:简化开发、部署与安全保障
|
17天前
|
Linux Docker Python
【docker】Mac M1 构建 x64 linux镜像
【docker】Mac M1 构建 x64 linux镜像
29 0
|
27天前
|
存储 运维 持续交付
介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。
21 0
|
2月前
|
Kubernetes Cloud Native Go
Golang深入浅出之-Go语言中的云原生开发:Kubernetes与Docker
【5月更文挑战第5天】本文探讨了Go语言在云原生开发中的应用,特别是在Kubernetes和Docker中的使用。Docker利用Go语言的性能和跨平台能力编写Dockerfile和构建镜像。Kubernetes,主要由Go语言编写,提供了方便的客户端库与集群交互。文章列举了Dockerfile编写、Kubernetes资源定义和服务发现的常见问题及解决方案,并给出了Go语言构建Docker镜像和与Kubernetes交互的代码示例。通过掌握这些技巧,开发者能更高效地进行云原生应用开发。
86 1
|
2月前
|
API 开发工具 C++
【专栏:工具与技巧篇】使用代码编辑器(VS Code/Sublime Text)提升开发效率
【4月更文挑战第30天】在VS Code与Sublime Text两大流行代码编辑器中,开发者可借助其高效特性提升编程效率。VS Code拥有丰富的插件生态、内置Git集成、强大的调试工具、智能提示和多文件导航功能。Sublime Text则以其轻量级、快速响应、多光标编辑及自定义构建系统见长。学习编辑器的键盘快捷键、自定义配置、使用内置终端以及键绑定和宏,将助开发者进一步提高开发效率。选择适合自己的编辑器并不断适应新技术是提升开发工作流的关键。
|
2月前
|
存储 Shell 网络安全
【vscode】在本地加载远端环境并开发
【vscode】在本地加载远端环境并开发
93 0
|
2月前
|
数据可视化 网络安全 开发工具
【新人必会】远程开发可视化 - VSCode篇
【新人必会】远程开发可视化 - VSCode篇
64 0