zoukankan      html  css  js  c++  java
  • Python学习笔记(三、一些第三方库)

    第三方库:使用前需要额外安装

    安装第三方库需要使用pip工具

    Pycharm第三方库的安装及使用方法

    Pyinstaller库

    将编写的扩展名为.py的Python源代码转换成无需源代码的可执行文件

    用可执行文件的方式来执行一段程序,而不是直接用源代码

    PyInstaller库是第三方库       - 官方网站: http://www.pyinstaller.org

    Pyinstaller库的安装

    (cmd命令行) pip install pyinstaller

    安装后如果提示Successfully installed,表明安装成功

    Pyinstaller库的使用

    先找到源代码,在源代码所在目录下通过Windows的命令行(不要使用IDLE环境下的交互编程环境,因为Pyinstaller是命令行的执行程序,不是Python下的执行指令)

    在源代码目录下面:

    (cmd命令行)pyinstaller -F <文件名.py>

    执行之后打开目录:

    新增如下3个文件夹,前两个文件夹可删,而dist中生成一个与源文件名一致的文件名

    Pyinstaller库常用参数

    参数              描述

    -h                    查看帮助

    -v,--version                  查看 PyInstaller 版本

    --clean            清理打包过程中的临时文件(比如:bulid、pyvache)

    -D,--onedir         默认值,生成dist文件夹(不推荐)

    -F,--onefile        在dist文件夹中只生成独立的打包文件(推荐)

    -i <图标文件名.ico>        指定打包程序使用的图标 (icon) 文件

    pyinstaller的使用和几个坑

    1. 命令使用pyinstaller和pyinstaller.exe结果都是一样的

    2.-w是不显示命令窗口,  -i 图标文件的路径  这是改变图标的,但是我发现只能改变任务栏里的和命令窗口的图标,并不能改变exe文件的图标。另外这些参数要加载pyinstaller和路径中间。

    3.有一些代码需要调用一些图片和资源文件的,这是不会自动导入的,需要你自己手动复制进去才行。不然exe文件运行时命令窗口会报错找不到这个文件。

    4.也是最坑的一点。就是当你使用错误的参数去打包或者打包到一半中断,等等此类运行到一半没了的情况。会导致你原来的py文件变成一个0KB的空文件。里面的代码会全部消失!!!所以以后需要有个良好的习惯,就是复制一份代码出来,用这个副本进行打包。并且参数出错,或者打错了导致失败时,检查下副本文件的py文件是否还存在再继续重新打包,不然打出来的就是空的文件,自然一直闪退,因为压根没内容。

    5.写代码的时候应当有个良好的习惯,用什么函数导什么函数,不要上来import整个库,最后你会发现你一个100KB的代码打包出来有500MB,全是库,简直无语

    关于安装cmd命令行安装pyinstaller库失败的解决方法

    pyinstaller 库的安装和使用图文教程

    我们开发的Python程序想要发布出去,那么我们如何打包成可执行文件exe呢

    PyInstaller是一个十分有用的第三方库,它能够在Windows、Linux、Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包,Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。PyInstaller 需要在命令行(控制台)下用pip 工具安装,如下:

    1、我们安装了pip后可直接通过命令窗口进行安装pip install pyinstaller 回车

     
    安装过程

    2、PyInstaller 的官方网站网址为 http://www.pyinstaller.org/。PyInstaller 库会自动将 PyInstaller 命令安装到 Python 解释器目录中,与 pip 或 pip3 命令路径相同,因此可以直接使用。使用PyInstaller 库十分简单,请注意,由于 PyInstaller 不支持源文件命中有英文句号(.)存在,假设

    dpython.py 文件在 D:codes 目录中,命令如下:

    :>pyinstaller dpython.py

    或者

    :>pyinstaller D:codesdpython.py

    执行完毕后,源文件所在目录将生成 dist 和 build 两个文件夹。其中,build 目录是 pyinstaller 存储临时文件的目录,可以安全删除。最终的打包程序在 dist 内部的 dpython 目录中。目录中其他文件是可执行文件 dpython.exe 的动态链接库。可以通过-F 参数对 Python

    源文件生成一个独立的可执行文件,如下:

    :>pyinstaller -F dpython.py

    执行后在 dist 目录中出现了 dpython.exe 文件,没有任何依赖库,执行它即可。使用 PyInstaller 库需要注意以下问题:文件路径中不能出现空格和英文句号(.);源文件必须是 UTF-8 编码,暂不支持其他编码类型。采用 IDLE编写的源文件都保存为 UTF-8 编码形式,可直接使用。PyInstaller

    有一些常用参数,如下所示:

    -h, --help 查看帮助

    -v, --version查看 PyInstaller 版本

    --clean清理打包过程中的临时文件

    -D, --onedir默认值,生成 dist 目录

    -F, --onefile在 dist 文件夹中只生成独立的打包文件第

    -p DIR, --paths DIR 添加 Python 文件使用的第三方库路径

    -i <.ico or .exe,ID or .icns>,--icon <.ico or .exe,ID or .icns >指定打包程序使用的图标(icon)文件

    PyInstaller 命令不需要在 Python 源文件中增加代码,只需要通过命令行进行打包即可。-F 参数最为常用,对于包含第三方库的源文件,可以使用-p 添加第三方库所在路径。如果第三方库由 pip 安装且在Python 环境目录中,则不需要使用-p 参数。



     

    jieba库

    jieba库是优秀的中文分词第三方库

    - 中文文本需要通过分词获得单个的词语

    - jieba是优秀的中文分词第三方库,需要额外安装

    - jieba库提供三种分词模式,最简单只需掌握一个函数

     

    jieba库的安装(cmd命令行):

    pip install jieba

    jieba库的使用

    jieba库分词的原理:

    Jieba分词依靠中文词库

    - 利用一个中文词库,确定汉字之间的关联概率

    - 汉字间概率大的组成词组,形成分词结果

    - 除了分词,用户还可以添加自定义的词组

    jieba分词的三种模式:精确模式、全模式、搜索引擎模式

    - 精确模式:把文本精确的切分开,不存在冗余单词

    - 全模式:把文本中所有可能的词语都扫描出来,有冗余

    - 搜索引擎模式:在精确模式基础上,对长词再次切分

    jieba库常用函数:

    实例:

    中文文本词频统计:

     1 import jieba
     2 txt = open("threekingdoms.txt", "r", encoding="utf-8").read()
     3 words = jieba.lcut(txt)
     4 counts = {}
     5 for word in words:
     6     if len(word)==1:
     7         continue
     8     else :
     9         counts[word] = counts.get(word, 0)+1
    10 lt = list(counts.items())
    11 lt.sort(key = lambda x:x[1], reverse = True) #由大到小的排序
    12 for i in range(15):
    13     word, count = lt[i]
    14     print("{0:<10}{1:>5}".format(word, count))

    中文文本人物出场统计:

     1 import jieba
     2 txt = open("threekingdoms.txt", "r", encoding="utf-8").read()
     3 excludes = {"将军", "却说", "荆州", "二人", "不可", "不能", "如此"}
     4 words = jieba.lcut(txt)
     5 counts = {}
     6 for word in words:
     7     if len(word)==1:
     8         continue
     9     elif word == "诸葛亮" or word == "孔明曰":
    10         rword = "孔明"
    11     elif word == "关公" or word == "云长":
    12         rword = "关羽"
    13     elif word == "玄德" or word == "玄德曰":
    14         rword = "刘备"
    15     elif word == "孟德" or word == "丞相":
    16         rword = "曹操"
    17     else :
    18         rword = word
    19     counts[rword] = counts.get(rword, 0)+1
    20 for word in excludes:
    21     del counts[word]
    22 lt = list(counts.items())
    23 lt.sort(key = lambda x:x[1], reverse = True) #由大到小的排序
    24 for i in range(10):
    25     word, count = lt[i]
    26     print("{0:<10}{1:>5}".format(word, count))

    -

  • 相关阅读:
    面试话痨(四)常量在哪里呀,常量在哪里
    面试话痨(三)我会锁的四种配法,您配吗?
    面试话痨(二)C:JAVA String,别以为你穿个马甲我就不认识你了
    面试话痨(一)让我们来热切的讨论这个养猪场吧
    (JAVA)String类型的逻辑语句编译
    小白的REDIS学习(二)-链表
    小白的Redis学习(一)-SDS简单动态字符串
    mongo中的游标与数据一致性的取舍
    spring-data-mongodb与mongo shell的对应关系
    spring-data-mongodb 使用原生aggregate语句
  • 原文地址:https://www.cnblogs.com/jiamian/p/12554858.html
Copyright © 2011-2022 走看看