0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

配置Python开发环境的DeepStream容器

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 作者:NVIDIA英伟达企业解 2022-08-12 11:05 次阅读

对于熟悉 C++ 的开发人员来说,前一篇文章将 DeepStreamSamples 版容器的范例搬到本机上,再搭配 Docker 路径映射方式就能轻松搭建开发环境。但这种方式只适用于 C / C++ 范例,并不适用于 DeepStream 的 Python 环境,因为还需要安装 Gstreamer 的 Gst-Python 与 DeepStream 的 PyBinding 与两个元件。

我们可以在容器内安装这两个元件,但是前面提供的 Docker 指令中使用 “--rm” 参数,一旦退出容器之后就会销毁这个调试好的环境,这对于使用来说是非常不方便的,因此必须做出调整,将调试好的环境保留下来,甚至于存成一个独立的镜像文件,就能方便日后的重复使用或移植工作。

1、将容器调整为 “后台运行” 执行:

在 NGC 官方提供的指令中使用 “--it” “--rm” 是为了能快速启用容器,并且在使用完毕后删除容器以避免占用不必要的资源,现在我们来做以下调整:

  • “-it” 参数改成 “-id”参数:这样虽然不会第一时间进入容器内执行,但是会让这个容器在后台运行,并且打印容器 ID,后面在使用 “dockerexec” 指令来进入容器操作,这是个非常实用的方式,大家可以好好学习使用方法;

  • 去除 “--rm” 参数:退出容器之后自动移除;

  • 添加 “--name” 参数:为了便于管理,不需要去面对长达 12 码的容器编号,我们可以用这个参数去指定容器名称,方便后面的操作;

  • 为了配合Python的iot应用范例,建议选择iot版容器的适用性会比较高。

现在试着执行以下指令,创建一个要配置 Python 开发环境的 DeepStream 容器:

docker run -id --name=ds_python --net=host  --runtime=nvidia  -e DISPLAY=$DISPLAY -w  /opt/nvidia/deepstream/deepstream  -v /tmp/.X11-unix/:/tmp/.X11-unix -v  ~/deepstream/sources:/opt/nvidia/deepstream/deepstream/sources -v  ~/deepstream/samples:/opt/nvidia/deepstream/deepstream/samples nvcr.io/nvidia/deepstream-l4t:6.1-iot

执行之后,会发现命令终端并未进入容器里面,依旧在本机(容器外)的状态,现在执行 “docker ps” 指令,会看到如以下的状态:

21fb054e-19eb-11ed-ba43-dac502259ad0.png

2216237e-19eb-11ed-ba43-dac502259ad0.png

这里显示有个名为 “ds_python” 的容器处于运行状态,但是我们还没有进入这个容器的操作环境中。

2、使用 docker exec 指令进入容器:

现在以 deepstream-l4t:6.1-iot 创建的 ds_python 容器已经在后台启动,我们只要使用 “docker exec” 指令就能进入容器内操作,请执行以下指令:

docker  exec  -it  ds_python  bash

这样就能进到容器里面。现在试试在容器内做些事情,例如创建一个目录、添加一个文件,然后执行 “exit” 退出容器,然后再执行前面的指令重新进入容器内,检查看看刚刚所做的修改应该还存在,这样就能确保我们为容器安装的内容可以保留。

3、重启系统之后的容器启动:

这种容器创建的方式,在系统重启之后还能保留前面的设定吗?重启一次系统就知道了,然后执行 “docker ps” 指令检查状态,发现看不到前面所创建的 ds_python 容器了,怎么办呢?

不用紧张,现在执行 “docker ps -a” 指令,就会发现这个容器依旧存在于背景资源中,只是没有启动而已,现在执行以下指令:

docker  start  ds_pythondockerps

现在再重新执行下面指令,就能进入容器里:

docker  exec  -it  ds_python  bash

再检查看看前面所做的修改是否依然存在?现在就能确认这种方式能将容器的修改长期保留,是一种更加实在的用法。

4、为容器安装 Python 开发环境:

现在可以在容器内按照 <https://github.com/NVIDIA-AI-IOT/deepstream_python_apps>“HOW-TO Guide” 安装步骤,调试 DeepStream 的 Python 开发环境:

  • 安装依赖库:

如果 Jetson 的操作系统是 Ubuntu 20.04(JetPack 5.0 以上),请执行以下的依赖库安装步骤:

apt install python3-gi python3-dev python3-gst-1.0 python-gi-dev git python-dev python3 python3-pip python3.8-dev cmake g++ build-essential libglib2.0-dev libglib2.0-dev-binlibgstreamer1.0-devlibtoolm4autoconfautomakelibgirepository1.0-devlibcairo2-dev

  • 从 GITHUB 仓下载源码到指定目录:

cd sourcesgit clone https://github.com/NVIDIA-AI-IOT/deepstream_python_appscd deepstream_python_appsgitsubmoduleupdate--init

  • 安装 Gst-Python

apt update apt-get install -y apt-transport-https ca-certificates -yupdate-ca-certificatescd  3rdparty/gst-python/./autogen.shmake&&makeinstall

  • 安装PyBinding:

请参照如下链接:

现在就完成了 Python 环境的配置。

5、测试 Python 范例

要验证环境是否调试完成的最简单方法,就是执行一个最基础的 deepstream-test1 范例,请在容器内执行以下指令:

cd  /opt/nvidia/deepstream/deepstream/cd  sources/deepstream_python_apps/apps/deepstream-test1./deepstream_test_1.py../../../../samples/streams/sample_720p.h26

正常运行会看到如下图的执行结果。

这样就表示 DeepStream 容器的 Python 开发环境已经安装成功。

6、重复使用调试好的容器:

接下来就是要将前面调试好的容器环境存储起来,以后就不需要每次调试一次环境。这部分分成三个阶段:

(1)临时性保存:

事实上前面使用 “-id” 指令之后,这个容器就会一直保留在背景中执行,即便重启系统后也是存在的,如同前面所提供的,只要执行以下指令就能重新进入这个容器:

sudo xhost +si:localuser:rootdockerstartds_python&&dockerexec-itds_pythonbash

(2)储存成 Docker 镜像:

现在需要在打开一个命令终端,使用 “docker commit <容器名> <镜像名>” 指令,将目前执行的容器存成一个镜像,请执行以下指令:

docker  commit  ds_python  deepstream-l4t:6.1-python

现在执行 “docker images” 指令,可以看到多了一个 “deepstream-l4t:6.1-python” 镜像,如下图所示:

227771ec-19eb-11ed-ba43-dac502259ad0.png

只要不重装系统或者删除这个镜像,那么这个镜像就会一直保留在系统里面,以后如果需要再次使用,只要执行以下指令即可:

sudo xhost +si:localuser:rootsudodockerrun-it--rm--net=host--runtimenvidia-eDISPLAY=$DISPLAY-w/opt/nvidia/deepstream/deepstream-v/tmp/.X11-unix/:/tmp/.X11-unix-v~/nvme/deepstream/sources:/opt/nvidia/deepstream/deepstream/sources-v~/nvme/deepstream/samples:/opt/nvidia/deepstream/deepstream/samplesdeepstream-l4t:6.1-python

或者可以同时启动多个独立的 Python 环境 DeepStream 容器,如下指令:

sudo xhost +si:localuser:rootsudodockerrun-id--name=ds_python2--net=host--runtimenvidia-eDISPLAY=$DISPLAY-w/opt/nvidia/deepstream/deepstream-v/tmp/.X11-unix/:/tmp/.X11-unix-v~/nvme/deepstream/sources:/opt/nvidia/deepstream/deepstream/sources-v~/nvme/deepstream/samples:/opt/nvidia/deepstream/deepstream/samplesdeepstream-l4t:6.1-python

(3)导出成文件:

最保险的方式,就是将这个 deepstream-l4t:6.1-python 镜像导出成文件,自行保存好,这样即便系统重新安装后,也能直接从这个文件载入镜像,然后开启工作容器:

# 将镜像导出成文件sudo  docker  save  deepstream-l4t:6.1-python  -o  jp50dp_ds61_python# 将文件载入成镜像sudodockerload-ijp50dp_ds61_python

现在,这个导出的 jp50dp_ds61_python 压缩文件,也能部署到其他 JetPack5.0 DP 所安装的 Jetson 设备上使用,不需要在每台机器上重复调试 Python 开发环境。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4952

    浏览量

    102861
  • 容器
    +关注

    关注

    0

    文章

    494

    浏览量

    22050
  • python
    +关注

    关注

    56

    文章

    4784

    浏览量

    84502

原文标题:NVIDIA Jetson 系列文章(7):配置DS容器Python开发环境

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    python环境变量的配置pip

    Python环境变量的配置和使用是每个Python开发者都需要了解和掌握的基本技能之一。在本文中,我们将详细介绍如何正确
    的头像 发表于 12-15 15:41 2386次阅读

    python开发环境

    谁有python开发环境,32位的软件开发环境,谁可以提供一下,谢谢!
    发表于 01-09 20:39

    构建Python开发环境的方法

    本系列教程将向大家讲述,在自己的计算机上构建完善的嵌入式系统开发环境的方法。本文将向大家讲述构建Python开发环境的方法。
    发表于 11-08 08:01

    1.2 Python 开发环境的搭建

    运行后,在下面就会弹出一个 Run 窗口,你在执行 Python 脚本时,所有的输出内容,都会出现在这里。至此, PyCharm 这个非常好用的集成开发环境配置完成了,后面我们就要正
    发表于 02-16 18:29

    python如何配置虚拟环境

    python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的隔离不同项目使用不同 python 版本
    发表于 01-07 17:12 931次阅读

    推荐几种好用的Python集成开发环境

    欢迎。它是一个开源软件并遵循GPL协议,所以你可以免费的使用它。虽然VIM是最好的文本编辑器,但是它提供的功能不亚于此,经过正确的配置后它可以成为一个全功能的Python开发环境。此外
    发表于 02-15 17:43 647次阅读

    Python语言介绍及开发环境

    Python语言介绍及开发环境说明。
    发表于 04-26 09:51 9次下载

    Python版test1实战说明

    上一篇文章已经带着大家安装 DeepStreamPython 开发环境,并且执行最简单的 deepstream-test1.py,让大
    的头像 发表于 10-09 14:28 1713次阅读

    DeepStream Samples版的操作环境调试过程

    NVIDIA 的 DeepStream 是目前业界最好开发而且功能强大的 AI 视频分析工具,在 NGC 上 https://catalog.ngc.nvidia.com/orgs/nvidia/containers/deepstrea
    的头像 发表于 08-03 10:18 1431次阅读

    DeepStream容器执行Python开发操作

    前面一篇文章已经带着大家将 DeepStream 容器配置 Python 使用环境,本文的重点就是继续执行实际的
    的头像 发表于 08-17 10:22 1890次阅读

    容器接入USB摄像头

    前面教大家使用 DeepStream 的 Docker 镜像去创建自己的 Python 工作环境,其好处是即使 Jetson 设备需要使用 JetPack 重新安装系统,我们只要重新启动这个 Docker
    的头像 发表于 08-31 09:35 1559次阅读

    如何测试Python环境

    在编程中,测试是一项重要的工作,可以帮助我们验证代码的正确性和稳定性。在Python编程环境中,同样需要进行测试来确保Python的安装和配置是正确的。在本篇文章中,我们将介绍如何测试
    的头像 发表于 04-14 12:14 4954次阅读

    如何配置Python环境变量

    配置Python环境变量是在安装Python解释器后的一项重要步骤,它允许您在任何位置都可以通过命令行或脚本运行Python解释器,使
    的头像 发表于 04-14 12:16 2w次阅读

    pycharm怎么配置python环境变量

    PyCharm 是一种以 Python 为主的集成开发环境 (IDE),它提供了一系列的功能用于开发、调试、测试和部署 Python 程序。
    的头像 发表于 11-29 14:56 2762次阅读

    python运行环境的安装和配置

    Python是一种非常流行的编程语言,广泛应用于科学计算、Web开发、人工智能等领域。为了能够正常运行Python程序,我们需要先安装和配置Pyth
    的头像 发表于 11-29 16:17 1116次阅读