Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

fire,一个强大的「python」库

2024-09-02 2 min read Docs Ronan

Github地址:https://github.com/google/python-fire

在开发命令行工具时,开发者通常需要编写大量代码来解析命令行参数,这既耗时又容易出错。Python Fire 是 Google 开源的一个库,旨在简化命令行界面的开发。它可以将任何 Python 对象自动生成一个命令行界面,从而大大减少了开发时间和代码复杂度。本文将详细介绍 Python Fire 库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

安装

要使用 Python Fire 库,首先需要安装它。以下是安装步骤:

使用 pip 安装

可以通过 pip 直接安装 Python Fire:

pip install fire

特性

  1. 自动生成命令行界面:将任何 Python 对象(函数、类、模块、字典等)自动转换为命令行界面。
  2. 简洁性:只需一行代码即可生成命令行界面,大大减少了开发时间和代码复杂度。
  3. 灵活性:支持多种数据类型和参数,能够处理复杂的命令行需求。
  4. 易用性:与 Python 标准库无缝集成,易于上手和使用。

基本功能

将函数转换为命令行工具

可以将一个简单的函数转换为命令行工具:

import fire

def greet(name):
    return f'Hello, {name}!'

if __name__ == '__main__':
    fire.Fire(greet)

在命令行中运行:

python greet.py John

输出:

Hello, John!

将类转换为命令行工具

可以将一个类转换为命令行工具:

import fire

class Calculator:
    def add(self, a, b):
        return a + b

    def multiply(self, a, b):
        return a * b

if __name__ == '__main__':
    fire.Fire(Calculator)

在命令行中运行:

Continue reading

Dockerfile的简单实现

2024-09-02 4 min read Docs Ronan

构建第一个Dockerfile

假设该镜像实现的等同于我们在已经配置好python环境的机器上通过python hello.py命令来运行一个python脚本

所以该Dockerfile的构建有以下步骤:

  1. 在桌面或其他位置新建一个文件夹,假设文件夹名为docker
  2. 在docker新建一个hello.py文件,hello.py已经实现所需功能
  3. 再在docker新建一个Dockerfile注意:仅开头且必须大写

以下是Dockerfile内容:

FROM python:3.9.19-alpine3.18
COPY hello.py /hello.py
CMD python hello.py

Dockerfile语法说明

Dockerfile 是 Docker 构建镜像的描述文件,它包含了一系列指令,描述了如何从基础镜像创建一个新的 Docker 镜像。

下面是 Dockerfile 中常用指令的说明及其语法,参考自Docker Dockerfile | 菜鸟教程 (runoob.com):

Dockerfile 指令说明
FROM指定基础镜像,用于后续的指令构建。
MAINTAINER指定Dockerfile的作者/维护者。(已弃用,推荐使用LABEL指令)
LABEL添加镜像的元数据,使用键值对的形式。
RUN在构建过程中在镜像中执行命令。
CMD指定容器创建时的默认命令。(可以被覆盖)
ENTRYPOINT设置容器创建时的主要命令。(不可被覆盖)
EXPOSE声明容器运行时监听的特定网络端口。
ENV在容器内部设置环境变量。
ADD将文件、目录或远程URL复制到镜像中。
COPY将文件或目录复制到镜像中。
VOLUME为容器创建挂载点或声明卷。
WORKDIR设置后续指令的工作目录。
USER指定后续指令的用户上下文。
ARG定义在构建过程中传递给构建器的变量,可使用 “docker build” 命令设置。
ONBUILD当该镜像被用作另一个构建过程的基础时,添加触发器。
STOPSIGNAL设置发送给容器以退出的系统调用信号。
HEALTHCHECK定义周期性检查容器健康状态的命令。
SHELL覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT指令。

详细说明:

Continue reading

「Python」虚拟环境

2024-09-02 1 min read Docs Ronan

在虚拟环境中,pip 和 pip3 通常会指向同一个 Python 版本的包管理器。虚拟环境会自动配置 pip 指向该环境中的 Python 解释器。

创建虚拟环境:

python3 -m venv myenv

[!NOTE] 此方法创建的虚拟环境基于系统自带的python版本,不能创建系统未安装的python版本的虚拟环境。假设系统的python3版本是3.12,那么通过 -m venv 创建的虚拟环境中的python也会是3.12版本的

如果要创建系统本身未安装的python版本虚拟环境,可以通过 conda 实现

激活虚拟环境:

1.对于 Bash 或 Zsh:

source myenv/bin/activate

2.对于 Fish shell:

source myenv/bin/activate.fish

3.对于 Windows 命令提示符:

myenv\Scripts\activate.bat

4.对于 Windows PowerShell:

myenv\Scripts\Activate.ps1

检查pip和pip3指向的路径:

激活虚拟环境后,运行以下命令来检查 pip 和 pip3 的路径:

which pip
which pip3

在虚拟环境中,这两个命令通常会输出相同的路径,例如:

/path/to/your/venv/bin/pip
/path/to/your/venv/bin/pip3

检查pip和pip3版本:

你也可以检查pip和pip3的版本号,它们应该指向相同的Python版本:

pip -V
pip3 -V

输出应该类似于:

pip 20.2.3 from /path/to/your/venv/lib/python3.8/site-packages/pip (python 3.8)
pip 20.2.3 from /path/to/your/venv/lib/python3.8/site-packages/pip (python 3.8)
Older posts Newer posts