linux(05) 编译安装py3
一.编译安装python3
https://www.cnblogs.com/pyyu/p/9015317.html
1.下载python3的源码
cd /opt
yum install wget -y 安装wget命令
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
注意:
1.安装python3之前,环境依赖解决
通过yum安装工具包,自动处理依赖关系,每个软件包通过空格分割
提前安装好这些软件包,日后就不会出现很多坑 得保证这些依赖工具包,正确安装
先下载依赖包
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
2.解压缩源码包
下载好python3源码包之后
Python-3.6.2.tgz
解压缩、
tar命令可以解压缩 tgz格式
tar -xvf Python-3.6.2.tgz
3.切换源码包目录
cd Python-3.6.2
4.编译且安装
1.释放编译文件makefile,这makefile就是用来编译且安装的
./configure --prefix=/opt/python36/
--prefix 指定软件的安装路径
2. 开始编译python3
make
3.编译且安装 (只有在这一步,才会生成/opt/python36)
make install
4.配置python3.6的环境变量
1.配置软连接(注意,这个和PATH配置,二选一)
ln -s 目标文件 软连接文件
ln -s /opt/python36/bin/python3.6 /usr/bin/python3
此时还没有pip
ln -s /opt/python36/bin/pip3 /usr/bin/pip3
或 2.配置path环境变量 (二选一即可)
echo $PATH查看环境变量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#这个变量赋值操作,只是临时生效,需要写入到文件,永久生效,需要进入环境变量在后面添加
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python36/bin
#linux有一个全局个人配置文件
编辑这个文件,在最底行写入PATH
vim /etc/profile #进入profile文件写入
写入
读一下这个/etc/profile 使得生效 #读取文件才生效
source /etc/profile
5.测试linux安装一个django,
pip3 install django
6.创建django项目
django-admin startproject mysite
7.创建django的APP应用
django-admin startapp app01
8.编写视图函数,测试一个index视图
9.注意修改settings.py的allow_hosts,windows方可访问linux的django项目
10.最后执行命令
python manage.py runserver 0.0.0.0:8000
启动
yum工具
yum install nginx -y
如果你用yum命令,提示yum进程被锁定,无法使用
解决办法:
ps -ef|grep yum 进程,这是说 有另一个进程也在用yum yum只能有一个进程使用
吞吐量
django 600
flask 1000+
tornado 异步非阻塞的框架 1800+
sanic 2800+ uvloop事件驱动 用在游戏接口领域
go
net/http web服务器 6W+
python的虚拟环境 virtualenv
1.需求在linux服务器上,既可以有django2.0环境,也能运行django1.11.11环境 思路: 1.django2.0想要运行,我们得准备python解释器+pip3软件包管理 2.还想运行django1.11.11 python解释器+pip3
在编译安装一个python3.6???????
pip3安装的模块,都放在/opt/python36/lib/python3.6/site-packages
virtualenv 就是一个虚拟解释器 就是基于物理环境下的python解释器,虚拟/分身 出的 多个解释器
venv1 django2.0
venv2 django1.1
venv3 flask
venv4 requestsscrapy
安装virtualevn #作用,在一台虚拟机上创建出许多个版本环境目录
1.下载virtualenv工具
通过物理环境的pip工具安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
安装完成后你的linux就多了一个virtualenv命令
2.创建虚拟环境venv1 venv2
virtualenv --no-site-packages --python=python3 s15venv1
调用虚拟环境的命令
--no-site-packages 这是构建干净,隔离的模块的参数
--python=python3 这个参数是指定虚拟环境以哪一个物理解释器为基础的
最后一个是虚拟环境的名字 会创建这么一个文件夹
3.进入虚拟环境目录,激活虚拟环境
找到你的虚拟环境目录bin地下的activate文件
source myenv/s15venv1/bin/activate
- 激活虚拟环境,原理就是修改了PATH变量,path是有顺序执行的
echo $PATH 检查环境变量
which python3
which pip3 检查虚拟环境是否正常
4.测试安装2个虚拟环境,venv1,venv2,并且运行2个django不同版本的项目
5.退出虚拟换的命令 deactivate
保证本地开发环境和线上一致性的操作
解决方案:
1.通过命令保证环境的一致性,导出当前的环境中所有的包,及各个版本的简单列表,
可以使用 “pip list”在不产生requirements文件的情况下, 查看已安装包的列表。
2.上传至服务器后,在服务器下创建virtualenv,在venv中导入项目所需的模块依赖
pip3 install -r requirements.txt
虚拟环境管理工具virtualenvwrapper
#作用:由于virtualenv创建的虚拟环境目录容易忘记,就引入virtualenvwrapper
1.安装这个命令,必须得在物理解释器地下,注意!! pip3 install virtualenvwrapper
注意这里path的配置,需要将物理解释器的python,放在path最前面
echo $PATH 这里保持配置和我一样,将python3放在最前面
[root@localhost ~]# echo $PATH /opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
2.修改环境变量,每次开机就加载这个virtualenvwrapper工具
vim ~/.bashrc #vim编辑用户家目录下的.bashrc文件,这个文件是用户在登录的时候,就读取这个文件
#export 是读取shell命令的作用
#这些变量根据你自己的绝对路径环境修改
export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的参数,生成干净隔绝的环境
export VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3 #指定python解释器
source /opt/python34/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
3.重新登录会话,使得这个配置生效
4.此时正确的话 virtualenvwrapper工具已经可以使用
提供了哪些命令?
mkvirtualenv 虚拟环境名 #自动下载虚拟环境,且激活虚拟环境
workon 虚拟环境名 #激活虚拟环境
deactivate 退出虚拟环境
rmvirtualenv 删除虚拟环境
cdvirtualenv 进入当前已激活的虚拟环境所在的目录
cdsitepackages 进入当前激活的虚拟环境的,python包的目录
linux(05) 编译安装py3的更多相关文章
- Linux下编译安装qemu和libvirt
目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 2 安装libvirt 2.1 libvirt介绍 2.2 下载libvirt 2.3 编译安装 3 ...
- Linux下编译安装qemu和libvirt【转】
转自:http://www.cnblogs.com/findumars/p/5679742.html 目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 ...
- LINUX下编译安装PHP各种报错大集合
本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...
- linux下编译安装vim7.4并安装clang_complete插件
linux下编译安装vim7.4并安装clang_complete插件 因为debian里软件仓库中下载安装的vim是不支持python写的插件的(可以打开vim,在命令模式先输入:py测试一下),导 ...
- linux PHP 编译安装参数详解
linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...
- linux下编译安装curl
linux下编译安装curl 1.下载curl git clone https://github.com/curl/curl.git 2.在curl目录下生成configure文件 ./buldcon ...
- linux下编译安装boost库
linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4. ...
- Linux下编译安装Apache Http Server
Linux下编译安装Apache Http Server [TOC] 1.下载httpd-2.4.12.tar.bz2 wget http://mirror.bit.edu.cn/apache/htt ...
- linux下编译安装nginx
1.首先下载稳定版nginx1.10.2 使用wget命令下载 wget http://nginx.org/download/nginx-1.10.2.tar.gz 2.然后解压 tar -zxvf ...
随机推荐
- grub2详解
本文主要介绍的是grub2,在文末对传统grub进行了简述,但在grub2的内容部分中包含了很多grub2和传统grub的对比. 如果仅仅是想知道grub2中的boot.img/core.img/di ...
- 剑指Offer-1.二维数组中的查找(C++/Java)
题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...
- LG1505 [国家集训队]旅游 树链剖分
问题描述 LG1505 题解 边化点权. 超级多操作的树剖板子... 以后就拿这个当树剖板子复习吧... \(\mathrm{Code}\) #include<bits/stdc++.h> ...
- Node.js中的模块接口module.exports
在写node.js代码时,我们经常需要自己写模块(module).同时还需要在模块最后写好模块接口,声明这个模块对外暴露什么内容.实际上,node.js的模块接口有多种不同写法.在此做了个简单的总结. ...
- Python中xlrd和xlwt模块使用方法----》》数据库数据导出(之一)
xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. (1) 打开excel文件并获取所有sheet >>> import xlrd >>& ...
- 简化wcf的service设置
使用wcf作为c/s的通信桥梁,就免不了要写wcf service,更免不了写一些配置. 但是在把系统中所有的.net remoting service都转换成wcf service以后,发现居然有2 ...
- LeetCode 19:删除链表的倒数第N个节点 Remove Nth Node From End of List
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. Given a linked list, remove the n-th node from the end of list and ...
- python 使用队列实现线程同步
#通过queue的方式进行线程间同步,Queue在底层通过实现了dqueue(双生队列,在字节码时实现了线程安全)实现了线程安全 from queue import Queue import time ...
- Java 银联云闪付对接记录
一开始盲目找资料走了弯路: 还是从银联给的官方文档入手最高效: 附件3:云闪付业务商户入网服务指引.pdf http://tomas.test.upcdn.net/pay/%E9%99%84%E4%B ...
- 关于5G手机使用4G套餐扫盲
有些人说换5G手机用4G套餐不用5G套餐可以享受最高 300 mbps 的签约速率.在此我来给你们科普下. 5G套餐分为 500 mbps 和 1000 mbps 两种.且都享受优先接入,顺序是 10 ...