python笔记40-环境迁移freeze生成requirements.txt
前言
我们用python在本地电脑上开发完成一个python自动化项目用例,或者开发完成一个django项目。
需要部署到另外一台电脑或者服务器上的时候,需要导入python相关的依赖包,可以用freeze一键生成requirements.txt文件
- pip freeze >requirements.txt # 生成一个迁移文件
- pip install -r requirements.txt # 安装依赖包
freeze生成文件
比如我在本地电脑开发完成了python的一个项目,会涉及到很多第三方的包,并且版本号都得一一对应,这样才能保证迁移过去不会有问题。
在不知道freeze这个功能的时候,我是先pip list 查看所有的第三方包,然后一个个pip安装,感觉挺傻的。
自从看到别人项目里面有个requirements.txt文件,才知道原来可以通过pip freeze一键生成
pip freeze >requirements.txt
[root@yoyo ~]# pip freeze >requirements.txt
[root@yoyo ~]# cat requirements.txt
APScheduler==3.5.3
asn1crypto==0.24.0
# ....太多省略了
xlrd==1.2.0
xlwt==1.3.0
[root@yoyo ~]#
这样在当前目录就会生成一个requirements.txt文件,包当前项目的所有第三方包和版本号都会导出来
pip 安装
requirements.txt文件生成后,我们不需要一个个pip安装,可以在requirements.txt文件当前目录使用pip一键安装
pip install -r requirements.txt
[root@yoyo ~]# pip install -r requirements.txt
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Requirement already satisfied: APScheduler==3.5.3 in /usr/local/python3/lib/python3.6/site-packages (from -r requirements.txt (line 1)) (3.5.3)
Requirement already satisfied: asn1crypto==0.24.0 in /usr/local/python3/lib/python3.6/site-packages (from -r requirements.txt (line 2)) (0.24.0)
Requirement already satisfied: atomicwrites==1.3.0 in /usr/local/python3/lib/python3.6/site-packages (from -r requirements.txt (line 3)) (1.3.0)
# ....太多省略了
Requirement already satisfied: xlwt==1.3.0 in /usr/local/python3/lib/python3.6/site-packages (from -r requirements.txt (line 62)) (1.3.0)
Requirement already satisfied: setuptools>=0.7 in /usr/local/python3/lib/python3.6/site-packages (from APScheduler==3.5.3->-r requirements.txt (line 1)) (40.6.2)
[root@yoyo ~]#
本地安装
如果你们公司的服务器限制了网络下载,那么只能通过本地安装了,freeze也可以下载本地包安装。
假设A服务器是没有网络的,你需要在A服务器上安装python第三方包,那么你先找个可以连网络的服务器B,在服务器B上先下载需要的安装包
服务器B上下载安装包
先使用pip freeze到处需要安装的包,比如我想安装以下包
[root@yoyo site-pkg]# cat requirements.txt
ix==1.12.0
attrs==18.2.0
py==1.7.0
pluggy==0.6.0
atomicwrites==1.3.0
more-itertools==6.0.0
pytest==3.6.3
pip download下载相关安装包
pip download -r requirements.txt
如果是阿里云服务器,会出现如下报错,那么加个参数--trusted-host mirrors.aliyun.com即可
[root@yoyo site-pkg]# pip download -r requirements.txt
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting ix==1.12.0 (from -r requirements.txt (line 1))
The repository located at mirrors.aliyun.com is not a trusted or secure host and is being ignored.
If this repository is available via HTTPS we recommend you use HTTPS instead,
otherwise you may silence this warning and allow it anyway with '--trusted-host mirrors.aliyun.com'.
Could not find a version that satisfies the requirement ix==1.12.0 (from -r requirements.txt (line 1)) (from versions: )
No matching distribution found for ix==1.12.0 (from -r requirements.txt (line 1))
You are using pip version 18.1, however version 19.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
加上--trusted-host mirrors.aliyun.com参数
pip download -r requirements.txt --trusted-host mirrors.aliyun.com
[root@yoyo site-pkg]# pip download -r requirements.txt --trusted-host mirrors.aliyun.com
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Collecting six==1.12.0 (from -r requirements.txt (line 1))
File was already downloaded /root/site-pkg/six-1.12.0-py2.py3-none-any.whl
Collecting attrs==18.2.0 (from -r requirements.txt (line 2))
Downloading http://mirrors.aliyun.com/pypi/packages/3a/e1/5f9023cc983f1a628a8c2fd051ad19e76ff7b142a0faf329336f9a62a514/attrs-18.2.0-py2.py3-none-any.whl
Saved ./attrs-18.2.0-py2.py3-none-any.whl
Successfully downloaded six attrs py pluggy atomicwrites more-itertools pytest setuptools
[root@yoyo site-pkg]# ll
total 968
-rw-r--r-- 1 root root 5885 Aug 25 23:17 atomicwrites-1.3.0-py2.py3-none-any.whl
-rw-r--r-- 1 root root 34713 Aug 25 23:17 attrs-18.2.0-py2.py3-none-any.whl
-rw-r--r-- 1 root root 52353 Aug 25 23:17 more_itertools-6.0.0-py3-none-any.whl
-rw-r--r-- 1 root root 13723 Aug 25 23:17 pluggy-0.6.0-py3-none-any.whl
-rw-r--r-- 1 root root 83960 Aug 25 23:17 py-1.7.0-py2.py3-none-any.whl
-rw-r--r-- 1 root root 195787 Aug 25 23:17 pytest-3.6.3-py2.py3-none-any.whl
-rw-r--r-- 1 root root 106 Aug 25 23:16 requirements.txt
-rw-r--r-- 1 root root 576332 Aug 25 23:17 setuptools-41.2.0-py2.py3-none-any.whl
-rw-r--r-- 1 root root 10586 Aug 25 23:17 six-1.12.0-py2.py3-none-any.whl
[root@yoyo site-pkg]#
这样就可以下载到.whl后缀的本地包了
服务器A上本地安装
由于服务器A上无法联网,可以先把上面下载到的相关包传到服务器A上,然后就可以使用pip本地安装了.
.whl后缀的包是可以直接使用pip本地安装的。
pip install pytest-3.6.3-py2.py3-none-any.whl
[root@yoyo site-pkg]# pip install pytest-3.6.3-py2.py3-none-any.whl
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Requirement already satisfied: pytest==3.6.3 from file:///root/site-pkg/pytest-3.6.3-py2.py3-none-any.whl in /usr/local/python3/lib/python3.6/site-packages (3.6.3)
Requirement already satisfied: pluggy<0.7,>=0.5 in /usr/local/python3/lib/python3.6/site-packages (from pytest==3.6.3) (0.6.0)
Requirement already satisfied: six>=1.10.0 in /usr/local/python3/lib/python3.6/site-packages (from pytest==3.6.3) (1.12.0)
Requirement already satisfied: atomicwrites>=1.0 in /usr/local/python3/lib/python3.6/site-packages (from pytest==3.6.3) (1.3.0)
Requirement already satisfied: more-itertools>=4.0.0 in /usr/local/python3/lib/python3.6/site-packages (from pytest==3.6.3) (6.0.0)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/python3/lib/python3.6/site-packages (from pytest==3.6.3) (18.2.0)
Requirement already satisfied: py>=1.5.0 in /usr/local/python3/lib/python3.6/site-packages (from pytest==3.6.3) (1.7.0)
Requirement already satisfied: setuptools in /usr/local/python3/lib/python3.6/site-packages (from pytest==3.6.3) (40.6.2)
[root@yoyo site-pkg]#
如果安装过程中有的包会有其他的依赖包,需先安装依赖包,一个个的安装就可以了。
(注意:windows系统上导出的包,在linux上安装可能会有失败的)
python笔记40-环境迁移freeze生成requirements.txt的更多相关文章
- 查找Python项目依赖的库并生成requirements.txt
使用pip freeze pip freeze > requirements.txt 这种方式配合virtualenv 才好使,否则把整个环境中的包都列出来了. 使用 pipreqs 这个工具的 ...
- python 项目自动生成requirements.txt文件
主要使用目的: 任何应用程序通常需要设置安装所需并依赖一组类库来满足工作要求.通过requirements.txt可以一次性安装程序所需要和依赖的包. 为工程生成requirements.txt的两种 ...
- Python项目依赖并生成requirements.txt
一起开发项目的时候总是要搭建环境和部署环境的,这个时候必须得有个python第三方包的list,一般都叫做requirements.txt. 如果一个项目使用时virtualenv环境,还好办 pip ...
- pipreqs------查找python项目依赖并生成requirements.txt
项目开发的时候,总是要搭建和部署环境,这时,就需要一个python第三方包的list,一般叫做requirements.txt.如果项目使用virtualenv环境,直接使用pip freeze即可, ...
- 查找python项目依赖并生成requirements.txt——pipreqs 真是很好用啊
查找python项目依赖并生成requirements.txt 转自:http://blog.csdn.net/orangleliu/article/details/60958525 一起开发项目的时 ...
- python-利用freeze生成requirements文件
使用场景:本地电脑开发完成的python自动化项目,需要导出python相关的依赖包以便后续迁移项目使用. C:\Users\acer>e: E:\>pip freeze >requ ...
- Python生成requirements.txt方法
在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及版本号,其作用是用来在另一个环境上重新构建项目所需要的运行环境依赖. require ...
- python生成requirements.txt 导出项目依赖
使用pip freeze $ pip freeze > requirements.txt 这种方式是把整个环境中的包都列出来了,如果是虚拟环境可以使用. 通常情况下我们只需要导出当前项目的req ...
- Python中如何生成requirements.txt文件
Python项目中一般都包含一个名为 requirements.txt 文件,用来记录当前项目所有的依赖包和版本号,在一个新环境下通过该文件可以更方便的构建项目所需要的运行环境. 生成requirem ...
随机推荐
- 好用的npm包或者工具
1.样式 classnames:https://github.com/JedWatson/classnames 2.随机数 uuid:https://github.com/kelektiv/node- ...
- python数据分析2之numpy
源代码 # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. " ...
- linux 把nginx加入到系统服务的方法
linux 把nginx加入到系统服务的方法一.首先写一个shell脚本,脚本名称:nginx<pre>#! /bin/bash# chkconfig: 35 85 15 # descri ...
- Haystack搜索框架
1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsearch,Whoosh ...
- 第4课,python 条件语句if用法
主题: 智能对话程序的设计 前言: 在编程中存在三大逻辑结构:顺序结构,分支结构(用条件语句if构成),循环结构.其中循环结构能完成,重复次数多,庞大的工作: 分支结构优势不在完成的多,但占有重要位置 ...
- centos 7安装jdk并封装service服务
一.概述 有一个Spring Cloud的jar包,文件名为:RDS.jar.必须要jdk1.8版本,需要部署在 Centos 7.5的服务器上面,最好能设置开机自启动! 二.安装jdk 关闭防火墙 ...
- C# 练习题 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8, ...
- docker save load export import的区别
export export命令用于持久化容器(不是镜像).所以,我们就需要通过以下方法得到容器ID: sudo docker ps -a 接着执行导出: sudo docker export < ...
- 题解 POJ 2559-SP1805 【HISTOGRA - Largest Rectangle in a Histogram】
题目链接: https://www.luogu.org/problemnew/show/SP1805 http://poj.org/problem?id=2559 思路: ## 单调栈 首先如果所有矩 ...
- Java自学-操作符 三元操作符
Java的三元操作符 三元操作符 ?: 示例 1 : 三元操作符 语法:表达式?值1:值2 如果表达式为真 返回值1 如果表达式为假 返回值2 public class HelloWorld { pu ...