1.创建PyCharm工程

使用PyCharm创建testHelloWorld工程,如下图所示:

2.选择本项目下的Python解释器

通过File -> Setting…选择解释器为本工程下的Python解释器。

【备注:一定要将项目python环境依赖存至本项目下,默认依赖本机python环境(会造成依赖包过多)】


3.代码编辑

创建main.py文件和test.html文件,代码如下:

main.py

"""=== coding: UTF8 ==="""
from lxml import etree"""
========================================
主函数功能测试
========================================
"""
if __name__ == '__main__':parser = etree.HTMLParser(encoding='utf-8')tree = etree.parse("test.html", parser=parser)# result = tree.xpath("/html")  # /表示层级关系,第一个/是根节点# result = tree.xpath("/html/body/ul/li/a/text()")  # text()拿文本# result = tree.xpath("/html/body/ul/li[1]/a/text()")  # xpath的顺序是从1开始数的,[]表示索引# result = tree.xpath("/html/body/ol/li/a[@href='dapao']/text()")  # @xxx=xxx表示属性的筛选# print(result)ol_li_list = tree.xpath("/html/body/ol/li")for li in ol_li_list:# 从每一个li中提取到文字信息result = li.xpath("./a/text()")  # 在li中继续查找,相对查找print(result)result = li.xpath("./a/@href")  # 拿到属性值: @属性print(result)print(tree.xpath("/html/body/ul/li/a/@href"))print(tree.xpath("/html/body/div[1]/text()"))print(tree.xpath("/html/body/ol/li/a/text()"))

test.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>测试</title>
</head>
<body><ul><li><a href="http://www.baidu.com">百度</a></li><li><a href="http://www.google.com">谷歌</a></li><li><a href="http://www.sogou.com">搜狗</a></li></ul><ol><li><a href="feiji">飞机</a></li><li><a href="dapao">大炮</a></li><li><a href="huoche">火车</a></li></ol><div class="job">高凡尔</div><div class="common">刘珂</div>
</body>
</html>

安装lxml模块后,编译运行,效果如下:

4.导出本项目程序依赖

在项目main.py界面鼠标右键,选择菜单Open in Terminal,打开Shell面板。

输入以下命令导出本项目依赖至requirements文件:

pip freeze > requirements.txt


5.打包前准备

下载的testHelloWorld文件夹下面创建docker_test文件夹,同级目录下创建Dockerfile文件,在docker_test文件夹下面添加main.py源代码和requirements.txt文件。


6.创建Dockerfile文件,添加内容

在Dockerfile文件中输入以下内容:

# python版本,可根据需求进行修改
FROM python:3.8-alpineRUN mkdir /code# 将代码和项目依赖添加到code文件夹
ADD ./docker_test /code# 设置code文件夹是工作目录
WORKDIR /codeRUN pip install -r requirements.txt# 镜像运行时执行的命令,这里的配置等于 python main.py
ENTRYPOINT ["python","main.py"]

7.打包Docker镜像

在testHelloWorld文件夹下,打开命令终端,使用root权限打包即可;我使用的是SecureCRT远程连接虚拟机Debian系统。

输入以下命令打包为mypythontest镜像:(最后有一个点)

podman build -t mypythontest .

打包镜像完毕后,使用下面命令查看镜像:

podman images

使用下面命令运行打包成功的mypythontest镜像,成功出现预期结果!!!

podman run mypythontest


获取更多技术干货,请访问大土土随笔

如果本文对您有所帮助,请关注微信公众号“捷创源科技”。

Linux Debian利用Dockefile将Python的py文件项目代码打包为Docker Podman镜像相关推荐

  1. 利用Dockefile将Python的py文件项目代码打包为Docker镜像

    1.创建python项目 [备注:一定要将项目python环境依赖存至本项目下,默认依赖本机python环境(会造成依赖包过多)] 2.创建main.py文件,完成程序代码 主要功能就是获取" ...

  2. Python输出py文件模拟代码高亮

    此程序十分简单,模拟的过程中简易的处理了Py语法对应的高亮,并输出行号.代码如下: #! /usr/bin/env python # coding:utf-8 # ****************** ...

  3. 使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用

    文章目录: 1 准备环境 2 调用`Cython库包`把python的`.py`文件生成`.so`文件 2.1 写源码文件 2.2 调用源码接口 2.3 调用Cython库把`.py`源码生成`.so ...

  4. python打不开py文件查看代码,用python打开py文件

    .py文件无法用python打开 刚刚把python更新到python3.7.2 但是发现之前写的.py的文件双击没有任何我去,你的情况和我一模一样,我也是环境变量和注册表按照网上的方法设置了,却还是 ...

  5. python怎么调用另一个py文件的变量,Python中py文件引用另一个py文件变量的方法

    Python中py文件引用另一个py文件变量的方法 最近自己初学Python,在编程是遇到一个问题就是,怎样在一个py文件中使用另一个py文件中变量,问题如下: demo1代码 import requ ...

  6. python转换成exe后一闪而过_解决python xx.py文件点击完之后一闪而过的问题

    解决python xx.py文件点击完之后一闪而过的问题 1.问题复现: 有时候我们去点击.py文件 文件里明明有打印信息,却一闪而过,没有任何显示 比如以下内容 #!/usr/local/bin/p ...

  7. 什么是pyc文件,把python的py文件编译成pyc文件,把pyc文件反编译成py文件。以及python编译的如何设置不生成pyc文件

    文章目录 1 什么是pyc文件 1.1 什么是pyc文件 1.2 pyc文件是怎么生成的,有什么好处 2 把python的py文件编译成pyc文件 2.1 使用python内置库py_compile把 ...

  8. python导入其他py文件-Python中py文件引用另一个py文件变量的方法

    最近自己初学Python,在编程是遇到一个问题就是,怎样在一个py文件中使用另一个py文件中变量,问题如下: demo1代码 import requests r = requests.get(&quo ...

  9. 如何在Jupyter notebook中运行python的.py文件,以及ipynb文件与py文件的相互转化

    文章目录: 1 Jupyter notebook中%开头的一些方法使用 1.1 运行python的py文件 1.2 加载本地文件 2 ipynb文件与py文件的相互转化 2.1 jupyter not ...

最新文章

  1. php调用C代码的方法详解
  2. 【 FPGA 】FIR滤波器目录
  3. C语言基础-简单程序分析
  4. Nginx 访问日志轮询切割
  5. 3g无线图传点到点模式与服务器模式比较,RTK网络模式分类及网络制式的选择
  6. 好用的浏览器_“遇见”一个好用的浏览器,功能非常强大到无法想象
  7. [HAOI2008]糖果传递 结论题
  8. 自学编程的 6 个误区 【原力计划-打卡挑战】第一周榜单揭晓
  9. 手机上有没有学python的软件-有没有手机上就能轻松编程的app?
  10. l298n电机哪一端为正_L298N使用说明介绍
  11. 三星s8android9,三星S8官方国行版安卓9固件rom刷机包:CHC-G9500ZCS3DSD5
  12. 【YOLO3D】:端到端3D点云输入的实时检测
  13. Unity3D射击小游戏Demo开发
  14. C# 关于winFrom控制网页的自动登录的问题(网页刷屏器的制作原理)
  15. Because You Loved Me歌词
  16. 4核处理器_苹果电脑便宜卖!4核i5处理器,480G固态硬盘,带刻录,13.4寸,双系统...
  17. 手把手教你学Python之波士顿房价预测(scikit-learn的应用)
  18. isFinite()的使用
  19. 在iOS应用中跳转到淘宝或天猫客户端商品详情页
  20. 【目标定位】基于matlab粒子滤波的定位算法【含Matlab源码 2161期】

热门文章

  1. 希捷服务器硬盘15k有几代,15000转 希捷15K.7企业硬盘独家拆解
  2. 服务市场现状研究分析与发展前景预测报告 -
  3. 如何用光盘映像文件重装服务器系统,韩博士教你如何使用光盘重装系统
  4. win 7能够“自动”兼容仿宋_GB2312文字?
  5. MatePad11基于SpaceDesk的屏幕扩展优化
  6. maple函数第二章-微积分:一元函数
  7. 最近看到的五子棋开局
  8. 随笔--纪录片《Undercover billionaire》随感
  9. supervisor的安装及使用
  10. LabVIEW 设定NI-DAQmx通道的共享变量的轮询速率