zoukankan      html  css  js  c++  java
  • 第5次实践作业

    一、Python环境搭建

    • 从Docker Hub上拉取Python镜像
      本次实验选择的Python镜像版本为Python:3
    • 文件结构
      img
    • Dockerfile
      安装第三方库的时候可能会出现超时问题,可以在换源,在pip install 后面添加 -i https://pypi.tuna.tsinghua.edu.cn/simple,如果换源之后还会出现超时,则在pip install 在添加--default-timeout=100,来修改默认等待时间。
    FROM python:3
    MAINTAINER ISLAND
    WORKDIR /usr/src/app
    COPY requirements.txt ./
    RUN pip install  --default-timeout=100 --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
    VOLUME /usr/src/app
    CMD ["python","demo.py"]
    
    • 构建Python镜像
      docker build -t python:v1 .
      img
    • 创建一个网络,接下来的Mysql和Python容器均要运行在同一个网络中才能相互访问。
      docker network create --subnet=172.1.0.0/16 py_mysql
      img

    二、测试

    • Hello World程序
      img
    • 日历输出
      img
    • 对数据库增加数据操作
      img
    • 查询数据操作
      img
    • 修改数据操作
      img
    • 删除数据操作
      img
    • 使用OpenCV进行绘图
      将绘制好的图线保存在宿主机中。
    import numpy as np
    import cv2
    # Create a black image
    img = np.zeros((512,512,3), np.uint8)
    
    # Draw a diagonal blue line with thickness of 5 px
    img = cv2.line(img,(0,0),(511,511),(255,0,0),5)
    
    img = cv2.circle(img,(447,63), 63, (0,0,255), -1)
    img = cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
    pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
    pts = pts.reshape((-1,1,2))
    img = cv2.polylines(img,[pts],True,(0,255,255))
    font = cv2.FONT_HERSHEY_SIMPLEX
    cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)
    
    cv2.imwrite('test.png',img) 
    

    三、问题&&解决办法&&时长

    问题&&解决办法

    • 安装第三库超时
      pip install 后面添加 --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple
    • 无法连接数据库
      docker创建的容器会处于不同的网络当中,在这种情况下两个容器是不相痛的。因此我们可以先创建一个网络,然后在把容器都放在自己创建的网络当中,这样两个容器就可以相互访问了。
    • Linux无法直接图形
      Ubuntu的内核是linux,从本质上讲,这个系统是没有图形化界面,因此我们直接使用OpenCV的cv2.imshow()方法是无法直接显示的,后来我去安装了一下matplotlib也无法直接显示图片,最终的结论是只能先把处理好的图片用cv2.imwrite()保存在文件中,然后在查看。
  • 相关阅读:
    通过WebService跨平台上传大文件到服务器
    C# 委托、Lambda表达式和事件——学习总结
    WIN8、WIN7访问Windows Server 2003服务器的数据库速度很慢、远程速度很慢的解决方法
    C#中接口与抽象类的区别
    DataGridView重查后,返回原来所在行
    需要开拓的领域
    FTP使用心得
    VS的几个实用快捷键
    C#中窗体、MDI的使用心得
    水晶报表使用心得
  • 原文地址:https://www.cnblogs.com/zebsn/p/12939619.html
Copyright © 2011-2022 走看看