Win 下 创建 Python 虚拟环境

主要是记录一个 用虚拟环境打包的坑, Virtualenv 不如自带的 venv 香.

需求

最近要对一个 tkinter 小程序打包为 exe. 毕竟业务人员是绝对不可能安装开发环境的. 不论你怎么说它如何强大.

代码是多文件夹的, 写了一个主程序 main.py 来控制主逻辑. 即要对它进行打包 exe. 百度了一下, 主流的方式用第三方库 pyinstaller. 然后创建虚拟环境, 打包, 怎么也打不了, 心态崩溃了好几天...

采坑 Virtualenv

之前有写过一点 web, 第一步就是要创建一个虚拟环境来开发嘛, 将其与其他的环境隔离开来. 因为不涉及打包exe这种骚操作, 搞完直接部署服务器. 因此参考百度的, 当时 99% 都是说 win下用第三方库 Virtualenv 来创建虚拟环境. web 倒是没呀问题, 可一打包就会发现, 虚拟环境跟其他环境, 根本就没有隔离开.

当然也回顾一下流程, 通用的嘛.

首先, 安装第三方库 Virturalenv

在 cmd 下,

pip install virtualenv

如果已经装了, 或想重装, 可以删掉. pip uninstall virtualenv

然后, 创建虚拟环境

virtualenv ENV

这会创建ENV/lib/ENV/includeENV/bin(Windows系统下是ENV/Scripts)几个文件夹,它们共同构成了一个完整的Python环境。在ENV/lib/中有pip等工具用于安装第三方包,它们和系统中已安装的Python互不关联。

这里有一个额外参数--system-site-packages,如果在创建虚拟环境的时候使用该参数,虚拟环境会继承主环境的所有第三方包。如果你希望虚拟环境和主环境独立,就不要用这个参数。操作上, 就是对文件目录的一个管理而已.

要激活创建的虚拟环境,需要执行虚拟环境其中的activate脚本:(win 下 在 Scripts 目录下有一个 activate.bat) 的脚本文件, 执行它就进入了虚拟环境了.

# cd 到 Scripts 目录下 (目录路径那, 键入 cmd 即可快速进入)
activate.bat

# 退出
deactivate.bat

非常简单对吧. 然后就死活 环境打包失败, 困扰了好久, 我一直以为是 打包库的bug, 可见, 解决问题最难的地方是, 一开始方向就错了.

反复试错, 后来发现, 打包的时候, 在虚拟环境中, 会莫名其妙关联到其它环境的包, 因此才想到, 肯定是 虚拟环境的问题.

反复抓狂....

自带的 venv 虚拟环境

后来, 小王告诉我, 干嘛不用 自带的 venv 虚拟环境, 真香.

3 行命令创建及进入虚拟环境.

假设呢, 我要在我的 D 盘下创建一个虚拟环境, 名为 my_venv.

python - m venv my_venv

然后进入进入到 my_venv 下的 Scripts 文件夹下, 运行 activate.bat 即可.

cd my_venv/scripts

activate.bat

就这 3行命令就搞定了, 不需要装其他的包和配置啥环境变量, 是真的香.

退出虚拟环境: deactivate.bat

删除虚拟环境: 删除文件夹即可. 最为简单粗暴.

配置虚拟环境

就是环境需要的包安装, 通常都是写完一个 requirements.txt 的文件.

pip install -r requirements.txt 

当然, 一个个地安装也可以.

环境已好下, 生成 requirements.txt 文件: 终端: pip freeze > ./requirements.txt 就是 ">" 这管道命令.

通过本地安装: setup.py install (通常下载的包, 顶层是有一个 setup.py 的文件的.

进入项目打包 exe

这个操作是非常自然的. 安装, 然后一行命令打包.

pip install pyinstaller

然后对项目的 main.py 所在目录层级下, 进行打包.

pyinstaller -F -w main.py

-F 是打为一个文件, 在执行完后, 生成的 dist 目录下, 有一个 main.exe 的文件, 拷贝到哪都可以运行.

直接打呢, 会有很多文件, 然后找到main.exe, 创建个快捷方式来访问, 这两种都是我经常的方式.

-w : 是运行时显示黑窗口, 第一次会加上, 相等于是一个 debug 版本. 没问题再去掉.

测试没有问题了. 再打一版本.

pyinstaller -F main.py

如果有图片资源等, 要另外放到相应的文件下, 这里不上图和操作了. 主要这篇是为了记录采坑和记住这几个命令, 毕竟, 网上的很多所谓答案, 都不如自己记一笔的好.

小结

  • 优先用内置模块, venv,还有像之前的, 一行实现 httpserver传文件等. 内置的才是真香, 操作简单, 效率高.
  • 熟练用 pyinstaller 这类打包 exe 工具. 怎么说了. 学会了, 发现用 python偶尔写桌面程序给别人用还 挺有意思.
  • 写代码真的就是个采坑的过程... 学之愈深, 坑也愈多, 其乐无穷.

原文地址:https://www.cnblogs.com/chenjieyouge/p/12293513.html

时间: 2024-08-29 04:20:35

Win 下 创建 Python 虚拟环境的相关文章

Windows下安装Python虚拟环境

Windows下安装Python虚拟环境 虚拟环境安装 需求概要 "虚拟环境"是从电脑独立开辟出来的环境.就好比我们生活中的橱柜中,会把酱油放在一个瓶子里,把醋放在另外一个瓶子里,这样做饭的时候你可以随意搭配酱油与醋的比例了. 做程序开发也一样,试想一下,如果某一天你正在做一个Django项目,而你的BOSS突然让你在本地调试一个有BUG的Flask项目,如果此时关掉正在做的Django开发的环境肯定会影响你工作的思路与进度,而直接把Flask运行在Django的环境下却会对你正在做的

[备忘录]用conda创建python虚拟环境

1.首先在所在系统中安装Anaconda.可以打开命令行输入conda -V检验是否安装以及当前conda的版本. 2.conda常用的命令. 1)conda list 查看安装了哪些包. 2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境 3)conda update conda 检查更新当前conda 3.创建python虚拟环境. 使用 conda create -n your_env_name python=X.X(2.7.3.6等)命令创建pyt

virtualenv 创建python虚拟环境

为什么要创建python虚拟环境 在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下. 如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3.如果应用A需要jinja 2.7,而应用B需要jinja 2.6怎么办? 这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境.virtualenv就是用来为一个应用创建一套“隔

Ubuntu系统下创建python数据挖掘虚拟环境

虚拟环境: 虚拟环境是用于创建独立的python环境,允许我们使用不同的python模块和版本,而不混淆. 让我们了解一下产品研发过程中虚拟环境的必要性,在python项目中,显然经常要使用不同的python库(包装器)来完成工作,但结局并不总是圆满的,大部分时候,我们会面临着诸如python应用无法在新的机器(操作系统)上运行的环境问题,这是新机器上Python库的依赖问题导致的.为了更好的理解,设想在开发python应用的过程当中,我们使用了python pandas(python的数据分析

一分钟 - 创建python虚拟环境

python创建虚拟环境 python安装第三方库大都是通过pip命令安装,这个命令确实是很简便的,而对于每个独立的项目来说,需要用到的库或许会不同,如果删除或更新原来已有的版本库,或许会导致其他的项目出错,这时候,虚拟环境就能够起作用了.哈哈~~~ 所以呢,通过python创建虚拟环境,可以分隔开不同环境下开发的项目. 小编用到的 材料: 环境:python3.7   win10 工具:使用pthon自带的 ->> venv 步骤:很简单的 ^v^,让我们一起来吧...... 1. 打开对应

Centos6.9下创建python3虚拟环境

# 在我centos上装有两个python版本 # 我在~/py3/目录下创建虚拟环境,该目录为python3的一个独立环境 [[email protected] /]# cd home [[email protected] home]# cd /py3/ # 没有py3的话,创建 [[email protected] home]# mkdir py3 [[email protected] home]# cd py3 [[email protected] py3]# python3 -m ven

mkvirtualenv创建python虚拟环境

为什么要创建虚拟环境呢? 如果在我们本地开发好几个项目,每个项目又用到很多第三方插件,如果没没用创建虚拟环境,那么本地项目插件就会很多很乱,如果有虚拟环境就不一样了 虚拟环境安装 pip install virtualenv pip install virtualenvwrapper pip install virtualenvwrapper-win 安装完上面三个插件后,需要配置一下环境变量WORKON_HOME,你创建的虚拟环境都在你配置的目录下 打开cmd,执行命令mkvirtualenv

[Linux系统] CentOS7创建Python虚拟环境

一.准备CentOS7系统 参照:https://www.cnblogs.com/leokale-zz/p/11643822.html 安装Anaconda到/usr/local/anaconda3目录下. 为python3创建软连接: ln -s /usr/local/anaconda3/bin/python /usr/bin/pyhon3 ln -s /usr/local/anaconda3/bin/pip /usr/bin/pip3 查看版本: [[email protected] ~]#

windows下安装Python虚拟环境virtualenvwrapper-win

1 前言 由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题. 通过 virtualenv 这个工具,就可以构建一系列 虚拟的python环境 ,然后在每个环境中安装需要的软件包(配合 pip 使用),这一系列的环境是相互隔离的.作为一个独立的环境就不容易出现版本问题,还方便部署. 2 安装 pip install virtualenv 3 virtualenv的基本使用 3.1 创建虚拟环境 virtualenv venv