python3 虚拟环境 pip 版本_【python知识】 - 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为国内源(笔者推荐清华源)

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]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vissim免修改时间工具_App闪退怎么办?免越狱如何安装未签名的App?

由于最近苹果大规模的封签名,导致在第三方渠道下载的软件都出现闪退没法使用的现象。目前的替代方法就是使用电脑端 Cydia Impactor 来给 App 进行自签,虽然相对比较麻烦,但这也是目前针对企业签名无法使用的唯一解决方法。下面以安装 FilzaE…

stm32g4 下载算法_难道STM32G4芯片的主频才到80MHz?

最近有个STM32用户反映,他们目前在调试STM32G431CBU6这款芯片。使用ST官方的Cube库进行编程,发现时钟没法配置到技术手册上告知的170MHz。当然这个170MHz的频率要经过PLL倍频产生。不管选用内部时钟源还是外部晶振,只要配置成170MHz,芯片肯定…

word表格美化技巧:如何统一改变表格的样式2+续表制作

一、表格样式 开始-样式-新建样式-样式类型:表格。 单独设置标题行,汇总行等格式即可。表格样式会显示在-设计-样式-表格样式中。 问题:汇总行无效。 即可。 二、续表 直接复制表格及题注到下一页,然后下下面表格的题注修改为…

python中selenium打开浏览器拿不到url_Selenium打开浏览器,但在Chrome和Firefox中都无法获取URL...

当我调用get()时,webdriver将打开浏览器,但不会打开我请求的单击。在Firefox中没有URL应该在的地方,而在Chrome中,URL是测试“data:,”。不到一个月前,我在Chrome和Selenium之间使用相同的代码没有问题。在…

excel条件格式详解

1、基于公式返回的逻辑值去判断,True则执行条件格式,FALSE不执行。 2、基于区域第一个单元格的公式,依次根据单元格引用方式判断区域内公式是否成立。 函数: 使用条件格式: 函数: 条件格式: 函…

ccf a类会议_CCF推荐 | 人工智能领域顶级会议:截稿日期批量速递

以下为已公布截稿日期的CCF推荐,人工智能领域会议,按照时间排序。个别会议因为没有公布截稿信息而不在所列时间线内。录取率信息为网络上可获得的最近年份数据,不一定是上一年的,文中尽量选择同时带有投稿量的数据年份供大家参考.…

hp服务器 新增硬盘_HP服务器linux操作系统如何添加硬盘

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":5,"count":5}]},"card":[{"des":"日志服务(Log Service,简称LOG/原…

记录excel翻车现场

课堂1: 1、sumif 参数问题 2、条件格式问题 excel条件格式详解_chdeWang的博客-CSDN博客 3、引用别的工作簿问题 4、文本连接函数区别 课堂2: XOR使用 数据库函数¡函数名(database,field,criteria),field为函数计算所在的列标题…

python递归调用详解_Python递归调用自己的函数

原博文 2019-11-16 10:36 − def fact(x): if x 1: return 1 else: return x * fact(x-1) ...0191 相关推荐 2019-09-28 21:13 − Python python是一种跨平台的计算机程序设计语言,是一种面向对象的动态类型语言。 最初被设计用于编写自动化脚本(shell)&#xff0c…

python java web前端 net 移动开发_JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的...

Javascript 可以做什么1. Web 前端相信这个这个是毫无疑问的,在 Web 前端的地位目前是没有任何语言能撼动它的霸主地位。image.png2. 后端 NodejsNode.js 是一个 Javascript 运行环境(runtime environment),发布于2009年5月,由Ryan Dahl 开发…

vue跳转到外部链接_前端实战项目:Vue.js实现外卖平台webapp,饿了么项目的翻版...

链接:https://github.com/ljianshu/mt-app适合没有经验的朋友。项目涉及到技术栈:vue全家桶:Vue、Vue-router、Vue-cli等 组件化:单Vue文件 模块化:ES6 Module 第三方模块:better-scroll axios等 基础开发环…

word跨页表格拆分与合并

拆分:Ctrlshiftenter 合并:Shift Alt 向下箭头

令xtu3service开机时立即启动_Mac开机时可以使用的快捷键 苹果电脑快捷键使用介绍...

大家都知道所有电脑在开机时,按住一些按键可以访问一些功能,当然Mac电脑也不例外。苹果电脑通过在开机启动时按住一个或多个按键可以访问一些Mac功能和工具。如果各位用户使用这些开机键组合键中的任何一个,可在按下电源按钮后,重…

feedburner怎么用_FeedBurner PRO 現在免費使用

今年5月底的時候FeedBurner才被Google以1億美元買下,在Google大金主的支援下FeedBurner現在免費讓所有的FeedBurner用戶昇級成以前要付費的PRO高級用戶。在FeedBurner後台My Account中可以看到”FeedBurner Stats PRO • Free for the life of your feed”&#xff…

word 插入图片显示不全

word插入图片显示不全: 解决方案: 选中图片-段落-行距-选择单倍、或者多倍行距都可以。即可。

操作系统-进程同步与互斥易混点

解惑1: 为使多个进程能互斥的访问某临界资源,只须为该资源设置 一个互斥信号量 mutex,初值为 1(代表临界资源只有一个) mutex初值为1.取值范围为[-1,0,1] 当mutex1时,表示两个进程皆未进入需要互斥访问的…

linux降低eigen3版本_玩转 Windows 自带的 Linux 子系统 (图文指南)

涉及到计算机科学离不开 Linux 系统,当然,也离不开Windows。但是,二者从操作到核心的不同,貌似让鱼和熊掌不可兼得。但是!微软已经拿出了一款让鱼和熊掌兼得的方案 WSL (Windows Subsystem for Linux&#…

hbuild json红叉_MUI+Hbuilder之踩坑(三)

1.1获取input值单个js:var input_ document.getElementById(inputid);var input_mui mui(#inputid);console.log(input_.value);//aaaconsole.log(input_mui.value);//undefindconsole.log(input_mui[0].value);//aaamui元素药转成DOM元素才能用。。什么鬼!用mui元…

处理死锁的四种方法

前面讲过预防死锁是通过破坏死锁的四个必要条件,所以就有四个预防死锁的方法吗?错!只有三种,因为互斥条件是必须的,不仅不能改变,还应该加以保证。因此只能破坏后三个条件。 一、破坏请求和保持条件 方法…