为pycharm配置docker解释器

应用场景

当python程序需要用到不同的package的时候,可以通过conda等创建虚拟环境进行配置,若需依赖的操作系统(linux)和主机(windows)不同,可以通过虚拟机创建对应操作系统,再在虚拟机上安装python环境,这样做主要有以下缺点:

  1. 你不知道虚拟机上能够为你安装的python版本范围,而很多python库是严格依赖python版本的,为此你要么安装前到官网或是论坛上查找匹配的版本,要么自己一个一个尝试,十分消耗时间。
  2. 占用空间较大,动辄就要为虚拟机划分10到10×nG不等的空间。

为此你可以尝试用docker封装(containerize)项目需要版本的解释器,通过pycharm进行连接,从而轻松运行和debug。

准备

操作系统: Windows or macOS

软件:pycharm(一定要专业版),Docker desktop(方便管理)

Docker介绍

Docker 是一种容器化平台,用于构建、部署和运行应用程序。它通过容器化技术,将应用程序和其依赖项打包在一起,形成一个独立的、可移植的运行环境,从而实现了应用程序的快速部署和跨平台运行。

安装

参考
https://www.jetbrains.com/help/pycharm/using-docker-as-a-remote-interpreter.html#config-docker

https://forums.docker.com/t/cant-execute-local-py-script-on-pycharm-when-using-docker-interpreter/140767

  1. 创建镜像配置文件:假设本地项目目录为 E:/local/path/to/your/file,该目录下有一个requirements.txt文件包含所需python环境,在该目录下创建一个Dockerfile,Dockerfile内容编辑为:
# Use Python 3.6 base image
FROM python:3.6

# Set environment variables
ENV PYTHONUNBUFFERED=1

# Install system dependencies
RUN apt-get update && apt-get install -y \
    libjpeg-dev \
    zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*

# Install Python packages
RUN pip install requirements.txt

# Set the working directory in the container
WORKDIR /app
  1. 打开命令行,输入:
$cd/d E:/local/path/to/your/file

$docker build -t remote-kernel .

第一行是将目录切换到本地项目和Dockerfile所在目录。
第二行是根据根据Dockerfile配置文件创建名为remote-kernel的镜像并下载所需环境。

  1. 链接远程解释器
    再次提醒pycharm一定要专业版,白嫖方法:https://www.cnblogs.com/xinux/p/16272114.html
    打开pycharm专业版,进入SettingsPlugins,确保Docker扩展已下载并激活(如下图)在这里插入图片描述
    点击进入解释器设置(SettingsProjectPython InterpreterAdd...),添加解释器选择Docker,新建一个Server,Connect to Docker daemon with:一栏中选择Docker for Windows(macOS选择Docker for macOS),确定;创建server后,下拉Image name可以看到刚刚创建的镜像Remote-kernel,选择,确定;(如下图1,2)
    图1
    图2

设置成功就可以看到一个新的解释器Remote Python 3.6.15 Docker (remote- kernel:latest) docker://remote kerel:atest//sr/local/bin/python最后一步:在Path mappings一栏新建一个路径映射,将Local path手动设置为E:/local/path/to/your/file (项目所在的本地路径),将Remote path设置为/opt/project,点击确定。(如下图)
在这里插入图片描述

  1. 测试
    你可以在本地新建一个test.py
	def main():
		print('hello world')
	
	if __name__ == '__main__':
		main()

点击运行,如果成功console会显示。

PyDev console: starting.
Python 3.6.15 (default, Dec 21 2021, 12:03:22) 
[GCC 10.2.1 20210110] on linux
runfile('/opt/project/test.py', wdir='/opt/project')
hello world

恭喜你,开启你的docker之路吧~

注意事项

  1. 视任务复杂度,有时会用到多个内核和依赖的情况,可以使用Docker Compose,不过上述教程可以解决实际生活中大多是应用场景。
  2. 通过ssh来连接远程服务器中的内核也是一个广泛使用的方法,不过尝试该方法前要知道远程服务器的系统不能是Windows,如果你的本地操作系统是linux,也可以用ssh连接。
  3. 每次基于该remote-kernel运行一个项目或者console,docker都会为每个操作创建一个独立的container,并且随着项目运行完成不会自动删除(多次运行test.py你会在python console看到test.py(1), test.py(2)…),因此你要根据需要手动关闭console,及时释放硬盘空间。
    4. 如果项目需要使用gpu支持(比如tensorflow-gpu)同样按照上述方法配置remote-kernel,在运行项目之前点击Run/Debug Configurations,选择Edit Docker Container Settings, 在Run Opitions一栏中加入:
--gpus all

如下如所示:
在这里插入图片描述
这样在项目debug中选择console,输入:

import tensorflow as tf
print(tf.test.is_gpu_available())

输出

Out[3]: True
  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PyCharmDocker的远程环境配置可以通过以下步骤完成: 1. 首先,确保你已经在本地安装了PyCharmDocker,并且已经在远程服务器上安装了Docker。 2. 打开PyCharm,点击菜单栏的"File",然后选择"Settings"。 3. 在弹出的窗口,选择"Project: \[项目名称\]",然后选择"Python Interpreter"。 4. 在右侧的面板,点击齿轮图标,选择"Add"。 5. 在弹出的窗口,选择"SSH Interpreter",然后点击"Next"。 6. 在"SSH Interpreter"页面,填写远程服务器的连接信息,包括主机名、用户名和密码。如果你使用SSH密钥进行连接,可以选择"Authentication type"为"Key pair",并选择你的私钥文件。 7. 在"Python Interpreter"页面,选择你在远程服务器上已经安装的Python解释器。如果你不确定解释器的路径,可以在远程服务器上运行"which python"命令来查找。 8. 点击"Next",然后点击"Finish"完成配置。 现在,你可以在PyCharm使用远程服务器上的Docker环境了。你可以通过在PyCharm打开项目文件,并在远程解释器下运行代码来使用远程服务器上的Docker容器。 #### 引用[.reference_title] - *1* *3* [ubuntu+docker+pycharm环境深度学习远程炼丹使用教程](https://blog.csdn.net/kobepaul123/article/details/127128572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [PyCharm+Docker:打造最舒适的深度学习炼丹炉](https://blog.csdn.net/weixin_36896856/article/details/122019631)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值