Ronan Blog

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

「python」打包程序

2024-09-02 1 min read Docs Ronan

通过pyinstaller打包

要将Python脚本打包成一个独立运行的应用程序,可以使用工具PyInstaller,其可以将Python脚本打包成一个可执行文件 (.exe) 。这样生成的应用程序不依赖于系统上的任何库,可以在没有Python环境的计算机上运行。一般使用pyinstaller将py文件打包成可执行文件。

[!warning]

通过该方法打包的程序不具备跨平台性 :如果你需要在其他操作系统上运行该程序(例如在Windows上开发并希望在macOS或Linux上运行),你需要在目标平台上执行上述步骤。PyInstaller 无法直接生成跨平台的可执行文件。

1. 安装 PyInstaller

首先,确保你已经安装了 PyInstaller。如果没有,可以使用以下命令进行安装:

pip3 install pyinstaller

2. 打包 Python 脚本

在终端或命令提示符下,导航到包含你的 Python 脚本的目录,并运行以下命令:

pyinstaller --onefile script_name.py

script_name.py 替换为你要打包的脚本文件名。--onefile 参数将所有的依赖和脚本打包成一个单一的可执行文件。

3. 查找生成的可执行文件

打包完成后,PyInstaller 会在当前目录下生成一个 dist 文件夹,其中包含你的可执行文件。你可以将这个文件复制到其他没有 Python 环境的系统上运行。

4. 处理依赖项

如果你的脚本有特定的依赖项(如额外的Python库),PyInstaller 会自动检测并打包它们。但如果有某些依赖项没有正确处理,你可能需要使用 --hidden-import 参数手动指定。

pyinstaller --onefile --hidden-import=<module_name> script_name.py

JavasSript常用方法

2024-09-02 1 min read Docs Ronan

获取 DOM 节点

1.选择匹配到的第一个元素

语法:

document.querySelector('css选择器')

参数:

包含一个或多个有效的css选择器 字符串 ,查看 更多css选择器

返回值:

CSS选择器匹配的第一个元素,一个HTML Element对象

2.选择匹配的多个元素

语法:

document.querySelectorAll('CSS选择器')

参数:

包含一个或多个有效的css选择器 字符串 ,查看 更多css选择器

返回值:

CSS选择器匹配的 NodeList 对象集合

示例:

const headings = document.querySelectorAll('h1, h2, h3, h4, h5, h6');
console.log(headings[0].textContent);

这将打印出 h1 标签里的文本内容。

总结

1.获取页面中的标签我们最终常用那两种方式?

querySelectorAll()

querySelector()

2.他们两者的区别是什么?

querySelector() 只能选择一个元素,可以直接操作

querySelectorAll() 可以选择多个元素,得到的是伪数组,需要遍历得每一个元素

3.他们两者小括号里面的参数有神马注意事项

里面写css选择

必须是字符串,也就是必须加引号

更新 DOM 节点

1.innerText方法

语法:

对象.innerText = '<strong>这不会变成粗体</strong>'

注意:

  • 通过该方法插入的只是字符串(纯文本信息),不能识别 html 标签

2.innerHtml方法(最常用)

语法:

对象.innerHtml = '<strong>这里可以变成粗体</strong>'

该方法可以识别 html 标签,或者可以用于插入 css 样式。

示例:

对象.innerHtml = '
    div {
        width: 300px;
        border: 25px solid green;
        padding: 25px;
        margin: 25px;
    }
'

创建和插入节点

1.创建节点并添加属性

创建节点语法:

Continue reading

静态库与动态库

2024-09-02 6 min read Docs Ronan

不管是Linux还是Windows中的库文件其本质和工作模式都是相同的, 只不过在不同的平台上库对应的文件格式和文件后缀不同。程序中调用的库有两种静态库动态库,不管是哪种库文件本质是还是源文件,只不过是二进制格式只有计算机能够识别,作为一个普通人就无能为力了。

在项目中使用库一般有两个目的,一个是为了使程序更加简洁不需要在项目中维护太多的源文件,另一方面是为了源代码保密,毕竟不是所有人都想把自己编写的程序开源出来。

当我们拿到了库文件(动态库、静态库)之后要想使用还必须有这些库中提供的API函数的声明,也就是头文件,把这些都添加到项目中,就可以快乐的写代码了。

1.静态库

在Linux中静态库由程序 ar 生成,现在静态库已经不像之前那么普遍了,这主要是由于程序都在使用动态库。关于静态库的命名规则如下:

  • 在Linux中静态库以lib作为前缀, 以.a作为后缀, 中间是库的名字自己指定即可, 即: libxxx.a
  • 在Windows中静态库一般以lib作为前缀, 以lib作为后缀, 中间是库的名字需要自己指定, 即: libxxx.lib

1.1生成静态链接库

生成静态库,需要先对源文件进行汇编操作 (使用参数 -c) 得到二进制格式的目标文件 (.o 格式), 然后在通过 ar工具将目标文件打包就可以得到静态库文件了 (libxxx.a)。

使用ar工具创建静态库的时候需要三个参数:

  • 参数c:创建一个库,不管库是否存在,都将创建。
  • 参数s:创建目标文件索引,这在创建较大的库时能加快时间。
  • 参数r:在库中插入模块(替换)。默认新的成员添加在库的结尾处,如果模块名已经在库中存在,则替换同名的模块。

img

生成静态链接库的具体步骤如下:

1.需要将源文件进行汇编, 得到 .o 文件, 需要使用参数 -c

# 执行如下操作, 默认生成二进制的 .o 文件
# -c 参数位置没有要求
$ gcc 源文件(*.c) -c
# 提示头文件找不到, 添加参数 -I 重新头文件路径即可
gcc 源文件(*.c) -c -I /path/

2.将得到的 .o 进行打包, 得到静态库

$ ar rcs 静态库的名字(libxxx.a) 原材料(*.o)

3.发布静态库

Continue reading
Older posts Newer posts