创建python虚拟环境并打包python文件
前言
当需要为一个离线环境部署python应用时,离线环境可能缺少各种python环境,有docker的话可以用docker,没有docker可以用pyinstaller打包成二进制文件。pyinstaller会打包当前所有用pip安装的包,所以建议在虚拟环境中打包python应用。
- 系统版本:centos 7
- python版本:3.6
步骤
- 安装
virtualenv
pip3 install virtualenv
- 创建虚拟环境
virtualenv myvenv
- 激活虚拟环境
cd myvenv
source ./bin/activate
- 下载依赖(在虚拟环境使用
pip时会引用宿主机的pip.conf文件,因此建议宿主机先设置好国内pip源,加快下载)
pip3 install pandas pyinstaller pymysql
- 编辑python文件:test.py
- 打包test.py。可以通过
pip3 show pandas获取site-packages的路径。打包后的二进制程序在当前目录的dist目录下。
pyinstaller -F -p /home/myvenv/lib64/python3.6/site-packages test.py
- 退出虚拟环境
deactivate
其它
- 需要管理多个虚拟环境时,推荐使用
virtualenvwrapper - 如果需要删除
virtualenv创建的虚拟环境,直接删除目录即可。
创建python虚拟环境并打包python文件的更多相关文章
- Python虚拟环境和requirements.txt文件的使用
参考: https://www.centos.bz/2018/05/centos-7-4-%E5%AE%89%E8%A3%85python3%E5%8F%8A%E8%99%9A%E6%8B%9F%E7 ...
- 如何在Ubuntu14.04中创建Python虚拟环境
在Ubuntu14.04中安装Python相对比较容易些,最简单的安装方法就是apt-get安装了,具体的教程可以戳这篇文章:在Ubuntu14.04中如何安装Python3和切换py2和py3环境. ...
- windows下创建Python虚拟环境
windows下创建Python虚拟环境 说明 由于Python的版本众多,还有Python2和Python3的争论,因此有些软件包或第三方库就容易出现版本不兼容的问题. 通过 virtualenv ...
- virtualenv 创建python虚拟环境
为什么要创建python虚拟环境 在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下. 如 ...
- 01安装Python虚拟环境
链接 一,为什么安装虚拟环境? 如果你有0.1版本的Flask已经完成项目,此时Flask1.1版本出来的时候就会对0.1有影响,我们通过虚拟环境可以做到互补影响. 二,安装方法 cmd--pip-- ...
- python 虚拟环境安装
windows虚拟环境的搭建 安装 # 建议使用pip3安装到python3环境下 pip3 install virtualenv pip3 install virtualenvwrapper-win ...
- [python] 2、python使用pyaudio进行录音,及其在python虚拟环境virtualenv中安装遇到的问题
1.pyaudio安装大背景 最近在做智能音箱,需要编写声音拾取代码,我先是百度两篇比较常见的用python进行录音的操作的文章: python写一个录音小程序:http://blog.csdn.ne ...
- 自动载入Python虚拟环境
自动载入Python虚拟环境 在安装jumpserver服务时发现可以使用autoenv来自动载入python虚拟环境,很好,非常好. $ cd /opt $ git clone https://gi ...
- Anaconda+用conda创建python虚拟环境
Anaconda+用conda创建python虚拟环境 Anaconda与conda区别 conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理.包管理与pip的使用类似,环境 ...
- GIt帮助文档之忽略某些文件——忽略python虚拟环境文件夹(转)
前言:为避免多个Python项目下安装库之间的冲突,或为轻松打包某个项目,建议在每个项目文件夹下安装Python虚拟环境,并在虚拟环境内进行操作,之后你安装的任何库和执行的任何程序都是在这个环境下运行 ...
随机推荐
- PHP前后端交互
PHP是现如今十分流行的轻量级语言,经常用来做应用的后端开发,其特点是语法简单,十分容易上手.除了单独做后端,PHP还能够将程序嵌入到HTML文件中执行,非常容易实现简单的前后端交互.而且PHP的运行 ...
- #Python assign赋值,新增列操作
- Apache DolphinScheduler 开源之夏学生项目申请开启,6 大课题等你来拿万元奖金!
开源之夏 2023 学生报名已经正式开启!Apache DolphinScheduler 今年继续参与开源之夏的活动,2023 年 4 月 29 日-6 月 3 日 15:00 UTC+8,同学们可以 ...
- sourcetree和git无法识别新增文件
在工程中新建文件,但是git和sourcetree无法识别,我是用的是Xcode添加的文件和图片,全都无法识别.例如,新建一个类文件,.h和.m都是别不出来,但是工程文件显示已经添加相对应的类,所以肯 ...
- node可以用nvm快速切换版本,golang如何快速切换版本?用gvm就行。
使用 gvm 可以带来以下好处: 快速切换 Golang 版本,方便进行版本测试和开发: 可以在多个项目中同时使用不同版本的 Golang 包和工具,避免冲突: 可以通过 gvm 管理不同版本的 Go ...
- 2021-08-14:给定两个字符串S和T,返回S的所有子序列中有多少个子序列的字面值等于T。
2021-08-14:给定两个字符串S和T,返回S的所有子序列中有多少个子序列的字面值等于T. 福大大 答案2021-08-14: 样本对应模型. 时间复杂度:O(N^2). 空间复杂度:O(N^2) ...
- SpringBoot 使用 Sa-Token 完成路由拦截鉴权
一.需求分析 在前文,我们详细的讲述了在 Sa-Token 如何使用注解进行权限认证,注解鉴权虽然方便,却并不适合所有鉴权场景. 假设有如下需求:项目中所有接口均需要登录认证校验,只有 "登 ...
- Java的CompletableFuture,Java的多线程开发
三.Java8的CompletableFuture,Java的多线程开发 1.CompletableFuture的常用方法 以后用到再加 runAsync() :开启异步(创建线程执行任务),无返回值 ...
- k8s实战案例之部署Nginx+Tomcat+NFS实现动静分离
1.基于镜像分层构建及自定义镜像运行Nginx及Java服务并基于NFS实现动静分离 1.1.业务镜像设计规划 根据业务的不同,我们可以导入官方基础镜像,在官方基础镜像的基础上自定义需要用的工具和环境 ...
- 洛谷 P8026 [ONTAK2015] Bajtocja
简要题意 有 \(d\) 张初始为空的无向图,每张中都有 \(n\) 个点,标号从 \(1\) 到 \(n\),\(m\) 次操作,每次往一张图加一条边,并询问有多少有序数对 \((a, b)\) 使 ...