虚拟环境、pip安装包、pyinstaller深度总结

一、虚拟环境

(一)创建普通虚拟环境

1.使用命令提示符窗口创建虚拟环境

说明:本操作是自己实际操作的步骤并总结出来的笔记

(1)找到创建虚拟环境的文件路径目录,输入cmd并回车。非C盘中的路径,同样可以创建虚拟环境,本例采用的就是D:/bai这个路径作为创建虚拟环境的文件。

 (2)在命令提示符窗口中输入命令:python -m venv Data_python3.9,按回车

(3)命令提示符窗口状态如下,并且创建虚拟环境中文件夹中多了一个名Data_python3.9的虚拟环境文件夹,即虚拟环境创建好了。

(4)打开虚拟环境文件中的Scripts,并输入cmd

(5)输入命令:activate.bat并按回车,即可激活该虚拟环境,此处的activate,bat同文件夹中activate.bat文件

(6)括号中出现虚拟环境的名称,表明该虚拟环境已经被激活,可以进行安装第三方库或者配置在pycharm中。

2.使用pycharm创建普通python虚拟环境

        (1)打开PyCharm,在菜单File中打开NewProject,弹出下图。

        (2)选中下图中的选项New environment using Virtualenv,此功能即为创建虚拟环境的功能。下面的选项Previously configured interpreter为使用Python软件配置好的解释器,即系统环境。

        (3)在左上角第一个Location中选择创建python文件的路径后,则在虚拟环境路径位置Location中,会在python文件路径后加一个venv。但是,有时创建时,并不一定python文件路径后,虚拟环境路径并不会按一述规律自动生成,此时需要手动添加一个venv。

 

        (4)点击Creat,即可创建一个Python项目并创建属于该项目的独立的虚拟环境。生成的虚拟环境文件在设置的虚拟环境路径中,如下图所示:

 

 

         简要总结使用PyCharm创建虚拟环境的方法:创建python文件时选中New environment using Virtualenv选项,设置好python文件路径及虚拟环境路径,直接点击Creat即可完成创建虚拟环境。

以上笔记来源:阿里云盘分享

(二)创建anaconda虚拟环境(推荐)

1.使用PyCharm创建conda虚拟环境(类似pycharm创建普通虚拟环境)

2.使用Anaconda Powershell Prompt创建虚拟环境

(1)创建conda虚拟环境的步骤

第1步:找到anaconda控制台并打开

第2步:打开后的anaconda控制台的样子

第3步:conda创建虚拟环境的命令 conda create –n py39 python=3.9

其他中py39是虚拟环境文件夹的名称,python=3.9是创建虚拟环境使用的python版本号

第4步:conda激活虚拟环境的命令 conda activate py39,其中py39是虚拟环境文件夹的名称。 

(2)conda虚拟环境的命令总结

安装虚拟环境命令
conda create -n CT8 python=3.9

其中:

 -n CT8        为虚拟环境名称,建议采用格式:虚拟环境名称_python版本号,如CT8_python3.9,这样一眼就可以看出自己创建的虚拟环境,使用哪个版本python解释器创建的。

python=3.9        指定创建虚拟环境的python版本,使用创建conda虚拟环境时,切记一定要指定python版本,否则,无法创建conda虚拟环境文件夹中内容不完整,导致无法使用。

激活虚拟环境
conda activate CT8

其中, -n CT8        为虚拟环境名称

查看已有的虚拟环境
conda info --envs
删除虚拟环境
conda env remove -n CT
查看虚拟环境中的python版本号

退出查看python版本号并切换至虚拟环境命令行

学习资料来源:

学习资料一:
https://www.bilibili.com/video/BV16i4y1v7tb?vd_source=4786f682d55e0415f381ab2f415da999

学习资料二:
https://www.bilibili.com/video/BV1gU421Z7K7?vd_source=4786f682d55e0415f381ab2f415da999

3.在pycharm中配置conda虚拟环境

(1)在已有项目中配置conda虚拟环境

第1步:打开pycharm,打开“文件”菜单中“设置”菜单项,弹出“设置”窗口,点击右上角的“添加解释器”选项卡,并点击“添加本地解释器”。

第2步:点击“设置”窗口右上角的添加解释器选项卡

第3步:在弹出的路径选择对话框中,选择虚拟环境文件夹中python.exe文件并点击确定。

第4步:在弹出的下方对话框中,点击确定

第5步:在弹出的下方对话框中,先点应用再点击确定。

 第6步:验证pycharm是否配置成功conda虚拟环境

 (2)创建新项目时配置conda虚拟环境

第1步:打开“文件”菜单,点开“新建项目”菜单项。

第2步:上一步创建并选择的新文件夹,出现在位置后面的路径中,勾选下方“先前配置的解释器”,点击点下角的添加解释器,并选择“添加本地解释器”。

第3步:选择解释器的操作同“在已有项目中配置conda虚拟环境”相关操作,选择完成解释器后,点击右下角的创建按钮。

 第4步:在弹出的打开项目对话框中,选择“新窗口”。

第5步:conda环境在pycharm中配置完成。

二、安装第三方包

(一)在pycharm中安装第三方包(推荐)

(二)在windows命令提示符窗口中安装第三包

1.进入虚拟环境文件中的Scripts文件中

 2.在上述文件路径中输入cmd。

3.回车后显示以下窗口

4.输入activate.bat,显示以下内容

 (三)安装第三方包的pip命令大全

1.pip安装第三方库

        (1)直接安装

        pip install 包名,如:

pip install requests

         (2)镜像安装

        pip install 库名 –i 源地址,如:

pip intall requests -i https://pypi.tuna.tsinghua.edu.cn/simple

         但是清华源官网给出的安装第方库的方法是:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package(库名)

        (3)使用清华源安装指定版本号的第三方库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package(库名)==版本号

        经验:打包高版本有第三库有时,未必会支持低版本库中写的代码。如在开发易1.0版本时,用pandas1.4.4版本写的程序,打包时安装的2.2.2版本的pandas,不支持下面语句中的encoding参数。因此,用什么版本的第三包写的程序,创建虚拟环境时,仍然安装该版本的第三库非常关键。

df.to_excel(setSavePath + '/楼层设置.xlsx', encoding='utf_8_sig')

         解决使用第三方包显示红线的方法:使用pycharm创建虚拟环境时,不使用ancanda中的python解释器,因为canda环境可能没有激活导致的。下午总结。

试验证明:两种镜像安装的方法均可以使用

参考资料来源(直接将网上粘贴在浏览器中可以打开):

pip安装python第三方库的四种方法_pip安装第三方库-CSDN博客

2.pip升级第三方库

pip install --upgrade package_name

3.pip卸载第三方库

pip uninstall package_name

知识点(自己发现):必须在canda环境生成的虚拟环境才可以安装pyqt5,用canda环境创建的虚拟环境可以自动提示第三方库的函数。

三、pyinstaller

1.打包icon图标

图标文件的实际路径,可以是相对路径或绝对路径

(1)相对路径:图标在当前目录下

pyinstaller -F i 21.ico temp.py

(2)绝对路径:图标文件位于其他目录,如:G:\Demo\21.ico  temp.py

pyinstaller -F -i G:\Demo\21.ico -n 小白 temp.py

 (3)制作ico的方法

第1步:找到需要转为ico的图片。

第2步:使用图片处理软件,如ps,可牛,将图片尺寸修剪为制作ico所需要的尺寸,比如32像素*32像素,当然也可以用制作ico网站允许的其他图片尺寸。

第3步:使用在线网站制作ico。

网站链接:在线制作ico图标 | 在线ico图标转换工具 方便制作favicon.ico - 比特虫 - Bitbug.net

2.指定exe文件名称

pyinstaller -F -i G:\Demo\21.ico -n 小白 temp.py

注意:-i 后面的图标路径同平时书写的python文件路径不同。

3.打包的py文件

py文件的位置,在别的博主的文中也称为项目程序入口。

py文件可以是相对路径,也可以绝对路径

路径的写法同icon

(1)当前目录

pyinstaller -F temp.py

(2)相对路径,x\temp.py 表示temp.py文件位于当前目录中文件夹x中

pyinstaller -F x\temp.py

(3)绝对路径

pyinstaller -F G:\Demo\temp.py

4.是否会自动打包自定义模块文件

        结论:打包在项目内部自定义的模块时,打包时,不需要作任何处理,python可以自动将这些模块打包进exe文件中。

(1)拟打码的代码,py文件名称ToPack.py:

import time
from Func import func1,func2
a=func1.SQ()
b=func2.JM()
print(a,b)
for i in range(3):
    print(f'{3-i}秒后程序自动退出!')
    time.sleep(1)

(2)引用的两个自定义模块,来自Func文件夹下的两个模块

func1代码:

def SQ():
    return 'MySql'

func2代码:

def JM():
    return 'JiaMi'

(3)项目文件结构

(4)使用pyinstaller打包,命令如下:

pyinstaller -D ToPack.py

(5)双击打包后的exe文件,运行结果如下图

(6)同理打包成单文件结果依然

 

四、spec文件的编辑

(一)a=Analysis()

1.参数:datas

        加载项目需要用到的资源文件,比如图片,视频等。列表中的数据格式为元组tuple,第1个值是资源文件所在开发人员电脑中路径(可以是绝对路径,也可以是相对路径),第2个值是打包后资源文件在的相对路径(相对exe文件的路径)。

        下面的代码意思就是,把打包py文件所在目录中文件夹中所有图片,将图片打包至exe所在目录中data/image文件夹中

        即

               'image/*.png'是相对需要打包的py文件的相对路径

                'data/image'是相对于打包后的exe文件所在的文件目录(这里指的目录是各级文件夹)

        注意:

        如果打包资源文件至和exe所在同一个目录,切记书写成('bai.txt','.'),即元组的第2个值不可以空,而是'.'

datas=[
	('image/*.png','data/image'),                        
	('pdf/test.pdf','data/pdf')
],

代码示例:相对路径 

a = Analysis(
    ['T1.py'],
    pathex=[],
    binaries=[],
    datas=[('bai.txt','.')],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)

代码示例:绝对路径

a = Analysis(
    ['T1.py'],
    pathex=[],
    binaries=[],
    datas=[('D:/我的文档/Desktop/林/bai.txt','.')],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)

 2.参数:hiddenimports

含义:报错未找到module,导入缺失模块,相当于pyinstaller中命令:

pyinstaller EC.py --hidden-import openpyxl.cell._writer

见六-2报错未找到module内容

示例:

pyinstaller -D -w -i 21.ico EC_V1.0.py --hidden-import openpyxl.cell._writer
a = Analysis(
    ['EC.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=['openpyxl.cell._writer'],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)

3.参数:excludes

 排除掉不需要的库,没有尝试过此操作。

4.参数:pathex

不理解,待学习总结

5.参数:binaries

不理解,待学习总结

(二) exe = EXE()

exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='EC_V1.0',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=False,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=['21.ico'],
)

1.参数 :name

相当下面pyinstaller命令中的参数-n

pyinstaller -D -w -i 21.ico -n 易算 EC_V1.0.py --hidden-import openpyxl.cell._writer

2.参数:icon

相当下面pyinstaller命令中的参数-i

pyinstaller -D -w -i 21.ico -n 易算 EC_V1.0.py --hidden-import openpyxl.cell._writer

五、常见打包错误及解决办法

1.未找到.dll文件

解决办法:

1.在C盘中搜索vcomp140.dll,如图所示

2.复制.dll文件至exe文件所在目录

 经验:

        如果电脑中找不到dll文件,可以在下面的网站下载并复制至打包后的exe文件所有的文件夹。

使用win10系统开发的易算1.0版本,在win10系统上使用pyinstaller打包后可以在win10系统上运行,但是发给朋友在win7系统中运行时,弹出来窗口提示,缺失api-ms-win-core-path-l1-1-0.dll,在自己电脑中搜索不到该文件,于是在网站在下载dll文件,放置在exe文件后,打包发送给朋友,就解决了问题,可以运行了。

Download missing DLL files for free | DLL‑files.com (dll-files.com)

2.报错未找到module

解决办法:

1复制module名称

  本条错误及解决办法来源:pyinstaller打包经验分享以及一些错误解决方法~~_哔哩哔哩_bilibili

2.在pyinstaller中使用--hidden-import命令导入缺失模块

 本条错误及解决办法来源:pyinstaller打包经验分享以及一些错误解决方法~~_哔哩哔哩_bilibili

3.第一打包exe时,不建议使用-w隐藏掉黑窗口

 本条错误及解决办法来源:python教程|pyinstaller打包程序的流程和遇到的坑_哔哩哔哩_bilibili

4.报错lipo

本条错误及解决办法来源:python教程|pyinstaller打包程序的流程和遇到的坑_哔哩哔哩_bilibili 

5.使用importlib动态导包引起的找不到模块

解决方法:使用导入隐藏模块方法解决,方法同2

 本条错误及解决办法资料来源:06 打包-导入模块问题_哔哩哔哩_bilibili

六、缩小打包文件的方法

七、待研究问题

如何反编译pyinstaller 生成的exe文件

【简单演示】反编译Pyinstaller生成的EXE文件,并重新打包_哔哩哔哩_bilibili

八、关于spec的其他网站的优质资源

深入理解PyInstaller的.spec文件 (baidu.com)icon-default.png?t=N7T8https://cloud.baidu.com/article/3311549

如何用pyinstaller打包python文件时将资源一起打包 – PingCodeicon-default.png?t=N7T8https://docs.pingcode.com/ask/ask-ask/175826.html

【技能Up】Python程序打包——Pyinstaller - 简书 (jianshu.com)icon-default.png?t=N7T8https://www.jianshu.com/p/a62ec70b9004如何将Python版「羊了个羊」打包成exe文件_python_运行_spec (sohu.com)icon-default.png?t=N7T8https://www.sohu.com/a/734414533_121124358深入理解PyInstaller的.spec文件-百度开发者中心 (baidu.com)icon-default.png?t=N7T8https://developer.baidu.com/article/details/3311549python pyinstaller打包 pyinstaller打包spec_mob64ca14017c37的技术博客_51CTO博客icon-default.png?t=N7T8https://blog.51cto.com/u_16213621/7436363pyinstaller通过spec文件打包py程序_pyinstaller spec-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/YLF123456789000/article/details/136346198

pyinstaller spec文件详解_python_宇宙全能王-华为云开发者联盟 (csdn.net)icon-default.png?t=N7T8https://huaweicloud.csdn.net/63808af0dacf622b8df8a1de.html         pyinstaller 官方网站

Requirements — PyInstaller 6.9.0 documentationicon-default.png?t=N7T8https://pyinstaller.org/en/stable/requirements.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值