• 2020系统综合实践 第5次实践作业


    创建运行python代码的Dockerfile

    Dockerfile

    FROM python:3
    MAINTAINER Yaobink
    WORKDIR /usr/src/app
    COPY requirements.txt ./  #安装依赖
    RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt #换成清华源
    VOLUME /usr/src/app
    ENTRYPOINT ["python"]
    CMD ["test.py"] #默认打开文件
    

    requirement.txt

    PyMySQL
    opencv-python
    

    构建镜像

    docker build -t python:py .
    

    在容器中运行python代码

    helloworld

    事先已经在apps文件夹下放入了test.py文件

    docker run -it -v /home/y/hw5/apps:/usr/src/app --rm  python:v0        ##--rm 表示运行完会删除容器
    

    日历输出

    mysql数据库操作

    使用之前实验二创建的数据库容器
    进入c_mysql容器
    登录容器内部mysql,给mysql数据库添加一个远程连接的用户

    mysql -uroot -p 123456 #连接进入容器内部mysql
    grant all privileges on *.* to 'Yao'@'%';  #刷新权限
    

    查询

    #!/usr/bin/python3
    import pymysql
    # 打开数据库连接
    db = pymysql.connect("172.18.0.1","Yao","123456","docker_mysql" )
    ...
    

    详细代码参考

    docker run -it -v /home/y/hw5/apps:/usr/src/app --rm  python:v0 sqltest.py  #最后添加文件名,运行指定的py文件
    

    插入

    修改

    删除

    opencv程序的部署运行

    实现图片的平移

    import cv2
    import numpy as np
    
    img = cv2.imread("messi5.jpg", 1)
    imgInfo = img.shape
    height = imgInfo[0]
    width = imgInfo[1]
    mode = imgInfo[2]
    
    dst = np.zeros(imgInfo, np.uint8)
    
    for i in range( height ):
        for j in range( width - 100 ):
            dst[i, j + 100] = img[i, j]
    
    cv2.imwrite("test-rotated.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
    
    
    docker run -it -v /home/y/hw5/apps:/usr/src/app --rm  python:v0 opcv.py
    

    问题

    (1)测试数据库的时候出现了了一些python语法的问题,忘记修改链接语句里面的localhost为本机地址导致错误,后面又出现了连接被拒绝

    按照该链接修改即可
    (2)测试opencv的时候出现这种情况

    这是由于代码内有cv2.imshow函数没有注释掉,这个函数在windows下可以直接调出窗口显示图片,在命令行下使用Linux就没法显示了
    所以通过cv2.imwrite把代码改成保存图片而不是查看图片就可以了

    耗时

    大概三个小时,主要还是耗费在了数据库这一部分,还好之前作业的博客,提高了些效率,不然真的又忘光了,看来把博客写完整是真的舒服

  • 相关阅读:
    防抖函数
    锁屏功能
    配置编译环境和线上环境之间的切换
    vue-router中的滚动行为
    axios的再次封装
    Anaconda 镜像配置
    Python 包管理工具 pip 与 conda
    Anaconda 安装与卸载
    VS Code 配置和使用
    解决 VS Code 无法使用Ctrl+C等快捷键
  • 原文地址:https://www.cnblogs.com/yaobink/p/12901901.html
Copyright © 2020-2023  润新知