【python知识】 - Python3之PIPENV虚拟环境及封装

Python3封装之PIPENV虚拟环境

Python的封装是通过pyinstaller直接打包python环境下的所有第三方模块,不管是不是封装程序涉及到的模块通通都一股脑打包进来,造成封装后大小超出预计很多。

Pipenv 是一款管理虚拟环境的命令行软件,简单来讲,它可以创建一个只在某个目录下的局部 Python 环境,而这个环境是可以和全局环境脱离开的.

安装方式:

>pip install pipenv   Python常用的安装第三方模块方法

安装完成后,选择一个目录,比如E:\ENV\等,然后在该目录下进入命令终端,安装python版本

>pipenv install --python 3.6   笔者这里装的是3.6版本,显示如下即安装成功

Creating a virtualenv for this project…

Pipfile: E:\env\auto\Pipfile

Using C:/Program Files/Python36/python.exe (3.6.5) to create virtualenv…

[=   ] Creating virtual environment...Using base prefix 'C:\\Program Files\\Python36'

New python executable in C:\Users\win\.virtualenvs\auto-NWXqOu9e\Scripts\python.exe

Installing setuptools, pip, wheel...

done.

Running virtualenv with interpreter C:/Program Files/Python36/python.exe

Successfully created virtual environment!

Virtualenv location: C:\Users\win\.virtualenvs\auto-NWXqOu9e

Creating a Pipfile for this project…

Pipfile.lock not found, creating…

Locking [dev-packages] dependencies…

Locking [packages] dependencies…

Updated Pipfile.lock (ca72e7)!

Installing dependencies from Pipfile.lock (ca72e7)…

 ================================ 0/0 - 00:00:00

To activate this project's virtualenv, run pipenv shell.

Alternatively, run a command inside the virtualenv with pipenv run.

 

下一步动作:

>pipenv shell   进入pipenv下的python虚拟环境

E:\env\auto>pipenv shell

Launching subshell in virtual environment…

Microsoft Windows [版本 10.0.17763.914]

(c) 2018 Microsoft Corporation. 著作權所有,並保留一切權利。

 

输入pip list可以查看虚拟环境下已有的模块:

(auto-NWXqOu9e) E:\env\auto>pip list

Package    Version

---------- -------

pip        19.3.1

setuptools 44.0.0

wheel      0.33.6

可以看到跟初始的pycharm一样,一切第三方模块都要重新导入。

这里顺便提下,因为这也算一个第三方模块,所有源码提取于国外源,所以导入第三方模块默认使用的url地址是国外源:url = "https://pypi.org/simple"。

为了加快导入速度,读者可以打开目录下的Pipfile文件,修改里面的url为国内源(笔者推荐清华源)

https://pypi.tuna.tsinghua.edu.cn/simple/

name可改可不改。

以上修改读者自愿!

 

接着就是导入第三方模块,按需要封装的程序所需的模块导入即可。

>pipenv install pyinstaller

>pipenv install pywin32

Installing pywin32…

Adding pywin32 to Pipfile's [packages]…

Installation Succeeded

Pipfile.lock (bb5dc2) out of date, updating to (ca72e7)…

Locking [dev-packages] dependencies…

Locking [packages] dependencies…

Success!

Updated Pipfile.lock (bb5dc2)!

Installing dependencies from Pipfile.lock (bb5dc2)…

 ================================ 1/1 - 00:00:05

 

导入完成,再在虚拟环境目录下执行pyinstaller封装指令即可。

E:\env\auto>pyinstaller -F -i anjian.ico --distpath anjian/ --clean -w autoUI.py -p auto.py --hidden-import auto

关于pyinstaller封装指令:

--distpath : 打包到哪个目录下

如果不指定 --dispatch 的话,最后会默认发布到 dist 目录下

-w: 指定生成 GUI 软件,也就是运行时不打开控制台

-c: 运行时打开控制台

-i : 指定打包后可执行文件的图标

--clean: 在构建之前清理PyInstaller缓存并删除临时文件

关于打包成什么样,有两种选择:

-D: 创建包含可执行文件的单文件夹包,同时会有一大堆依赖的 dll 文件,这是默认选项

-F: 只生成一个 .exe 文件,如果项目比较小的话可以用这个,但比较大的话就不推荐

如果要打包文件附带自建的py模块,则用如下方式添加即可。

pyinstaller [主文件] -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2]

 

 

上一篇:PYTHON1.面向对象_day02


下一篇:PYTHON1.day18_SQL(增删改查)