Linux常用服务安装部署
1,centos7默认是装有python的,检查python版本的命令
- # 检查python版本 : python -V

2,centOS在安装python3以及tab补全功能
- 下载python3源码,选择3.6.7因为ipython环境
- wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
- 解压缩源码包.去除xz后缀
- xz -d Python-3.6.7.tar.xz
- 解压缩源代码,去掉tar后缀
- tar -xf Python-3.6.7.tar
- 解决编译安装python3所需的软件依赖(解决这些依赖关系后期才能正常运转python3.6,如果不解决,会出现各种报错信息,此时还得重新编译python3.6)
- yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
- 开始进行编译安装
- 调用源码包路径下的config这个脚本
- ./configure --prefix=/opt/python36/
- 执行make命令.开始编译(此步骤还不会生成/opt/python36这个文件夹)
- 翻译 python解释器是对代码进行一行一行的翻译并且转化成成机器码去执行
- 编译, 编译型语言,在运行代码之前,有一个编译的过程(将代码编译成二进制文件)
- 调用源码包路径下的config这个脚本
- 编译安装,没有报错后, 就可以正常使用python3了
- 快捷使用python3.6的方式(一下二选一)
- 软连接(这一步很麻烦,并且不适用于virtualenv的创建)
- ln-s /opt/python36/bin/python3.6 user/bin/python3(但是这一步还没有pip)
- ln-s /opt/python36/bin/pip3 /usr/bin/pip3
- 环境变量的配置
- echo $PATH
- /usr/local/bin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
- 配置python36的目录,加入环境变量
- 因为path的路径查找是有先后顺序的,并且在配置virtualenv的时候,优先级先找到的python环境为base环境
- 请将python36的目录放到path的第一层
- /opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:
- 配置环境变量,永久生效,写入到文件/etc/profile中,每次登录就生效
- vim /etc/profile #将此配置写到最低行
- PATH=/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
- source /etc/profile #读取这个文件,让python3生效
- echo $PATH
- 软连接(这一步很麻烦,并且不适用于virtualenv的创建)
- 检查所有的python的文件夹关系
- ls 查看一下

软件包解析:python36(这个是工作的,已经安装好的python3软件包目录),python-3.6.7(这个是python的源码文件夹,安装成功后可删除),python--3.6.7tar这个人是压缩包,可以删除
- 升级pip工具,升级pip的版本
- pip3 install --upgrade pip
- 安装ipython解释器
- 安装ipython,指定douban源下载
- pip3 install -i https://pypi.douban.com/simple ipython
- 安装朱皮特
- pip3 install -i https://pypi.douban.com/simple jupyter
- 进入ipython环境,给jupyter设置密码
- ipython
- from IPython.lib import passwd
- passwd()#生成jupyter登录的密码
- 输入:0923
- 生成jupyter的配置文件
- jupyter notebook --generate-config --allow-root
- vim ~/.jupyter/jupyter_notebook_config.py
- 修改如下配置一致即可,去掉注释符#才能读取读取代码
- c.NotebookApp.ip = '建议写当前linux机器的ip地址'
- c.NotebookApp.open_browser = False
- c.NotebookApp.port = 8888
- 启动朱皮特
- jupyter notebook --allow-root #启动notebook
- ip:8888: 端口访问你的 jupyter页面
- 如果启动不了,很有可能是防火墙问题
- iptables -L #查看规则
- iptables -F #清空规则
- systemctl stop firewalld #关闭防火墙服务
- systemctl disable firewalld #从开机自启中,移除这个防火墙服务,永久关闭
- 关闭selinux
- getenforce 查看selinux规则
- 2. 临时关闭selinux setenforce 0
- 注意:永久关闭selinux,需要重启生效
- vim /etc/selinux/config
- 写入以下配置
- SELINUX=disabled
- #重启服务器生效,selinux永久disabled
- 安装django1.11.11
- pip3 install -i https://pypi.douban.com/simple django==1.11.11
- Linux下的虚拟环境安装(virtualenv),以宿主机的python解释器为在主体,然后复制多个虚拟环境
- 通过pip3安装虚拟环境
- pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
- 通过virtualenv命令,创建第一个新的虚拟环境
- virtualenv --no-site-packages --python=python3 venv1
- 参数解释:
- --no-site-packages 创建一个干净,隔离宿主机环境的虚拟环境
- --python=python3 3 指定你的虚拟环境,以哪个解释器为base环境
- virtualenv --no-site-packages --python=python3 venv1
- 激活虚拟环境,切换宿主机,进入虚拟环境的环境变量
- source /opt/all_env/venv1/bin/activate
- 检查环境变量PATH, 检查是否正确激活了虚拟环境
- echo $PATH

检查当前的python3和pip3来自于那
- which python3

- which pip3

使用venv1虚拟环境,安装一个django1.11.11
- pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.11
- 提出虚拟环境
- deactivate
- 服务器环境之保证本地服务器开发环境一致性的配置:
- 通过命令导出当前python解释器的pip包环境
- pip3 freeze > requirements.py #这个requirements.py文件,就存放了正常运转的开发软件依赖包的信息
- 将此requirements.py文件传到服务器上
- 通过命令导出当前python解释器的pip包环境
- 虚拟环境管理之virtualenvwrapper安葬步骤:
- 下载安装virtualenvwrapper
- pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
- 执行脚本,让当前机器支持virtualenvwrapper,但是有一个问题,重启后,退出会话后,这个功能就失效了
- 配置全局变量,让每次登陆linux时候,就加载这个virtualenvwrapper.sh脚本文件,使得virtualenvwrapper这个工具生效
- #打开这个用户环境变量配置文件,写入以下信息,export 就是读取一段shell变量的命令
- vim ~/.bashrc #这个文件代表用户环境变量,每次登陆时候加载
- export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
- export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的参数,生成干净隔绝的环境
- export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3.6 #指定python解释器,(这个得根据你自己机器环境来配)
- source /opt/python36/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本,这个脚本放在你的python3.6解释器bin目录下
- 读取文件,使得生效,此时已经可以使用virtalenvwrapper
source ~/.bashrc
- 开始使用virtualenvwrapper,创建一个venv1
- mkvirtualenv venv1 #这一步会创建venv1,并且放入到WORKON_HOME变量定义目录下,并且自动激活虚拟环境
- lsvirtualenv #查看当前机器所有的虚拟环境
- workon #用于激活虚拟环境,也用于在多个虚拟环境中来回切换
- rmvirtualenv #用于删除虚拟环境,也会自动找到所有的虚拟环境
- cdvirtualenv #用于直接进入虚拟环境的目录,此命令需要激活虚拟环境
- cdsitepackages #用于直接进入pip3软件包的目录
- 使用了virtualenvwrapper 就不需要再手动安装virtualenv了
- 下载安装virtualenvwrapper
Linux常用服务安装部署的更多相关文章
- redis常用服务安装部署
常用服务安装部署 学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧! 安装环境: centos7 + vmware + xshell 即将登场的是: mysql(m ...
- Linux下的python3,virtualenv,Mysql、nginx、redis等常用服务安装配置
Linux下的python3,virtualenv,Mysql.nginx.redis等常用服务安装配置 学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧! 安装环 ...
- Kali Linux常用服务配置教程安装及配置DHCP服务
Kali Linux常用服务配置教程安装及配置DHCP服务 在Kali Linux中,默认没有安装DHCP服务.下面将介绍安装并配置DHCP服务的方法. 1.安装DHCP服务 在Kali Linux中 ...
- Kali Linux常用服务配置教程DHCP服务原理
Kali Linux常用服务配置教程DHCP服务原理 动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)是一个局域网的网络协议,基于UDP协议工作 ...
- Kali Linux常用服务配置教程获取IP地址
Kali Linux常用服务配置教程获取IP地址 下面以Kali Linux为例,演示获取IP地址的方法 (1)设置网络接口为自动获取IP地址.在Kali Linux的收藏夹中单击图标,将显示所有的程 ...
- Kali Linux常用服务配置教程启动DHCP服务
Kali Linux常用服务配置教程启动DHCP服务 通过前面的介绍,DHCP服务就配置好了.接下来,用户就可以使用该服务器来获取IP地址了.下面将对前面配置的服务进行测试. 1.启动DHCP服务 如 ...
- linux查看服务安装目录
linux查看服务安装目录server dir 假如我们想查看 Redis 的安装目录 如果用命令 which redis 或者 whereis redis 都找不到安装目录, 可使用以下办法: ps ...
- Linux系统下DHCP服务安装部署和使用详解
一.概述 DHCP :动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或 ...
- 04.Linux系统-Zabbix监控服务安装部署
一.环境准备 操作系统:CentOS_Server_7.5_x64_1804.iso 部署组件:Zabbix 二.操作步骤: Zabbix_Server安装部署 2.0.安装依赖组件 [root@lo ...
随机推荐
- Django框架基础知识12-中间件及上下文处理器
Django中间件(Middleware) 是一个轻量级.底层的“插件”系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出. django 中的中间件(middleware) ...
- python对象销毁(垃圾回收)
Python 使用了引用计数这一简单技术来跟踪和回收垃圾. 在 Python 内部记录着所有使用中的对象各有多少引用. 一个内部跟踪变量,称为一个引用计数器. 当对象被创建时, 就创建了一个引用计数, ...
- 「问题思考」python的递归中return返回none
代码: #求最大公约数 def gcd(x,y): if x < y: swap = x x = y y = swap if x%y == 0: return y else: gcd(y,x%y ...
- winform中ComboBox控件的简单使用
在开发winform中用到了ComboBox,但是发现和asp.net中的DropDownList差别比我想象中的大. 给ComboBox添加数据总结的有两种方法(绑定数据库在这里不说): 第一种方法 ...
- Pychorm提示Unresolved reference 导入模块报错
最近使用Pychorm编写Python时,每次要引入自定义模块,就会报错,提示“Unresolved reference” Unresolved reference 'LoginClass' more ...
- Codeforces 892 A.Greed
A. Greed time limit per test 2 seconds memory limit per test 256 megabytes input standard input outp ...
- Couriers(bzoj 3524)
Description 给一个长度为n的序列a.1≤a[i]≤n.m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2.如果存在,输出这个数,否则输出0. ...
- 2016 Multi-University Training Contest 9 solutions BY 金策工业综合大学
A Poor King Tag: Reversed BFS Preprocessing is needed to calculate answers for all positions (states ...
- [NOIP2002] 普及组
产生数 预处理出一个数能变成多少种数,然后遍历原串的每一位,累乘方案数即可. 需要用到高精度. /*By SilverN*/ #include<iostream> #include< ...
- 【HDOJ6342】Expression in Memories(模拟)
题意: 给定一个由0123456789+* ?组成的表达式,其中?可以被改为任意其它字符,问修改问号后是否有方案使得表达式合法 len<=5e2,sumlen<=1e5 思路: #incl ...