pipenv+pyinstaller打包程序

直接用pyinstaller打包也可以,但是会把一些不必要的库也打包进去,尤其是在Anocanda环境下的python。所以,为了进一步压缩体积,我选择了在虚拟环境下用pyinstaller打包程序。除此之外,还有一些可以压缩体积打包的方法。(借鉴:https://www.cnblogs.com/valorchang/p/11358541.html

1、用pipenv创建虚拟环境

(1)安装pipenv

pip install pipenv

(2)如果想创建固定版本的python虚拟环境,可以执行如下:(否则这一步可以忽略)

pipenv --python 版本号
如:
pipenv --python 3.6

(3)进入虚拟环境

(第一次进入,它会自动建立虚拟环境,所以不用额外再建立虚拟环境了)

pipenv shell

(注:建立虚拟环境需要在项目文件下的路径上建立!!!这里你可以直接按住shift键同时将鼠标放在项目文件夹上右击鼠标以进入命令行窗口,这样就可以在项目文件路径下操作了)

(4)pip install 包(对依赖的第三方库包进行安装)(安装过程是比较容易出现错误的阶段)

这里根据你的程序所用到的第三方库进行安装。安装第三方库的过程中容易出现“Read time out”这种安装失败的情况。这是因为安装包默认源自国外网站,访问慢甚至有时会中断。这里有两种方式解决该问题:

①延长timeout时间

pip install 库名 --timeout 1000

②换安装源换到国内镜像

# 以清华大学镜像为例
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名

常用的国内镜像:

(1)阿里云 http://mirrors.aliyun.com/pypi/simple/
(2)豆瓣http://pypi.douban.com/simple/
(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
(4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
(5)华中科技大学http://pypi.hustunique.com/
注:新版的Ubuntu要求使用https源

https://www.cnblogs.com/guohongwei/p/10841025.html

另外,安装过程中可能会出现以下错误:

这是因为sys是python的内置库不属于第三方库,所以不用安装。还有许多库不属于第三方库,如果遇到这种错误可以直接跳过该库。

在我安装multiprocessing库时,出现了以下错误:

这里是因为multiprocessing模块的安装语句错误,正确应该是:pip3 install multiprocess

如果有自己定义的库,需要把它放到项目文件夹中,一起打包。

(5)安装pyinstaller

pip install pyinstaller

(6)打包(打包过程中也会出现很多问题)

pyinstaller 文件名.py

以下列举我当时遇到的问题:

①如果在安装包的时候没有安装全,就会出现找不到某个模块。

解决:把漏掉的包安装上即可。

②Unable to find "nltk_data" when adding binary and data files

解决:https://www.jianshu.com/p/ef6e23f8e2c1

(好像还有,但是我忘记了。。。)

(7)打包完成后,有两个文件夹dist和build。其中dist中有.exe执行程序。

我当时的程序运行时出现窗口闪退情况。这时候,你可以打开cmd,进入到程序所在路径运行程序,此时,窗口上会显示错误。根据该错误再进行改正。我当时是出现以下错误:

ModuleNotFoundError: No module named 'pkg_resources.py2_warn

原因是setuptools版本过高,把setuptools降级到44.0.0以下重新打包即可。

 

我的在打包完成后,运行程序,出现WARNING: The configuration file does not exist.但是没有影响程序的运行,所以我就没有管它。

 

如果虚拟环境不用了,怎么删掉呢?

答:虚拟环境在C:\Users\Administrator\.virtualenvs中。如果你给多个程序建立了多个虚拟环境,.virtualenvs里面会有多个虚拟环境文件夹,选择你要删除的那个删掉即可。

 

暂时想到这些,如果大家有什么问题,可以评论,我再给大家补充(#^.^#)

如果有错误还希望大家多多指正!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值