linux下python程序部署
1、安装python
2、安装virtualenv
https://blog.csdn.net/mulangren1988/article/details/59106682
3、指定virtualenv的python
命令样例
## 推荐这种方式
/home/ec2-user/dev/python/bin/python ~/dev-tools/virtualenv-15.1.0/virtualenv.py ~/pyenv
在想要建立虚拟环境的目录下运行
/app/python3/bin/python3 /app/virtualenv-15.1.0/virtualenv.py --no-site-packages /app/xmlbuilder/
解释
/app/python3/bin/python3 是python的安装位置
/app/virtualenv-15.1.0/virtualenv.py 是virtualenv的可执行文件目录
--no-site-packages 表示纯净安装,不引用任何已安装的包
/app/xmlbuilder/ 虚拟环境的文件夹
4、在源virtualenv里面执行命令
pip list 查看当前已经安装的包
pip freeze > requirements.txt 保存当前依赖包清单,默认保存在执行命令时的目录下
一般习惯放在bin目录下
5、执行命令,下载安装包
pip download -r requirements.txt --index-url=https://pypi.python.org/pypi -d /Users/jesse/PycharmProjects/oracletest/packages/
其中 requirements。txt 是上一步生成的依赖包清单
-d 是指定目录
后面是指定的目录,一般习惯放在工程文件夹的根目录,也就是和venv平级的目录
6、将安装包文件夹拷贝到目标位置,执行下列命令进行安装
pip install -r requirements.txt --no-index --find-links file:/app/xmlbuilder/transforpack2linux
解释:
--no-index 不使用在线索引下载
--find-links file:/app/xmlbuilder/transforpack2linux 文件包所在的目录
执行安装的时候,可能会报错,比如
Could not find a version that satisfies the requirement numpy==1.15.1 (from -r requirements.txt (line 7)) (from versions: )
No matching distribution found for numpy==1.15.1 (from -r requirements.txt (line 7))
采用手动方式逐个安装
pip install xxx.whl
到出问题的文件,实际的错误是
lxml-4.2.4-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl is not a supported wheel on this platform.
实际上其文件名也说明了问题,由于开发环境是osx系统,所以下载的是mac版本的依赖包
所以需要到
下载对应的linux版本的依赖包
依赖包的名称有严格的要求,从下载到安装之所以能自动完成,完全依靠这个标准
多个版本放在一起,pip也能识别出来正确的
小结一点:如果开发环境和部署环境完全一致的话(稳妥起见最好操作系统小版本也一致),如此可以将原来的virtualenv直接拷贝到部署环境上,是可以直接运行起来的。
其他虚拟环境迁移方式
https://blog.csdn.net/qq_34146899/article/details/52454616
linux下python程序部署的更多相关文章
- Linux下Python 文件内容替换脚本
Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...
- Linux下python安装升级详细步骤 | Python2 升级 Python3
Linux下python升级步骤 Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...
- linux下c程序调用reboot函数实现直接重启【转】
转自:http://www.blog.chinaunix.net/uid-20564848-id-73878.html linux下c程序调用reboot函数实现直接重启 当然你也可以直接调用syst ...
- Linux下C程序的编辑,编译和运行以及调试
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- 在linux下用tomcat部署java web项目的过程与注意事项
在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...
- 位图文件(BMP)格式以及Linux下C程序实现(转)
源:位图文件(BMP)格式以及Linux下C程序实现 说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP.由于没有经过任何的压缩,故BMP图 ...
- linux下实现自动部署tomcat的脚本
linux下实现自动部署tomcat的脚本 由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下a ...
- Linux下Tomcat同时部署两个工程然而只有一个能访问问题
Linux下Tomcat同时部署两个工程然而只有一个能访问问题 问题: Linux下单个部署到Tomcat下的时候都正常,两个一起部署,只有一个能访问: 解决方案: 由于采用#./shutdown.s ...
- Linux下C程序内存泄露检测
在linux下些C语言程序,最大的问题就是没有一个好的编程IDE,当然想kdevelop等工具都相当的强大,但我还是习惯使用kdevelop工具,由于没有一个习惯的编程IDE,内存检测也就成了在lin ...
- 在linux下用tomcat部署java web项目的过程与注意事项(转)
在linux下用tomcat部署java web项目的过程与注意事项一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/in ...
随机推荐
- HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP 和 ASP.NET
https://www.runoob.com/tags/html-reference.html 在线版,从基础的 HTML 到 CSS,乃至进阶的 XML.SQL.JS.PHP 和 ASP.NET. ...
- Python用telnet设置,抓UDP抓采样点并显示
====main.bat==== echo off rem "d:\Program\WiresharkPortable64\App\Wireshark\tshark.exe" -- ...
- 暴雪、迪士尼大佬用什么画画?RayLink远控软件助力解锁远程创作
CG绘画从业者,如原画师.插画师.漫画家.设计师等,一定对数位板\数位屏不陌生,数位板\数位屏是完成CG绘画作品的重要绘图工具之一. 从画画小白到数字绘画大神,从0基础插画培训班学生到国际知名游戏.动 ...
- unity学习笔记03-渲染管线
图形数据在GPU上经过运算处理,最后显示在显示器上的过程 游戏→图形API→cpu→(DRAW CALL)交给GPU→顶点处理→图元装配→光栅化→像素处理→缓存 减少DRAW CALL 增加性能 O ...
- 【C++复习】第七章 类的继承(基类、派生类、虚基类)
1.基类与派生类 类的继承:面向对象的程序设计中提供了类的继承机制,允许程序员在保持原有类特性的基础上,进行更具体.更详细的定义 用途:代码的重用性(继承)和可扩充性(派生) 例:植物大战僵尸游戏中, ...
- gym102586C Sum Modulo
题意: 给你 \(n,m,k\) 以及\(p_i(1\le i\le n)\) ,保证 \(\sum p_i=1\) 你有一个数 \(X\),一开始 \(X=0\) 每次你会生成一个随机数 \(A\) ...
- JS数组的交集与差集
有两个数组arr1,arr2 实现arr2中去除arr1相同的元素 e.g arr1=[1,2,3] arr2=[2,3,4] ===> result = [4] 实现 获取两个数组(arr1, ...
- react 非父子组件传参方式
1.通过父组件当中间人方式,子传父再传子 2.通过发布订阅模式 obj={ list:[], sub(callback){ list.push(callback) }, pub(){ list.for ...
- 手写JS深拷贝
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MFC中利用CFileDialog选择文件并读取文件所遇到的问题和解决方法
在用MFC编写一个上位机时,需要实现选择和读取一个二进制文件,本来以为很简单的但是在实现过程中遇到很多问题,所幸都一一解决,这里做一下记录. 首先在实现文件选择,在界面上设置一个按钮,并在点击事件函数 ...