一.1搭建跨平台的统一python开发环境
搭建跨平台的统一python开发环境:
使用开发环境的好处:
可不用在服务器上直接修改源代码---写的代码首先得入版本库(放git或giitlab中),在本地写代码提交到git中.然后在服务器上git pull把代码拉上来运行。
项目大层级目录多用vim写不利于管理项目--用ide管理可组织代码结构,甚至能自动import,还可做到集成的功能:如可直接在ide中运行我的服务,甚至解释器使用远程在本地进行调试(如果在本地写python脚本的话要在本地安装一python脚本,那还得各种依赖--这就麻烦)。
不管何种开发语言,目前用的比较多的开发环境基本就是Vagrant+VirtualBox搭建的虚拟开发环境,这种开发环境的好处就是一次搭建处处可用,各个平台和系统都可以使用。开发团队中,可以自己制作一个box,让团队的成员方便安装,保证每个人的开发环境都是一致的。
Vagrant可以创建一些共享目录,让物理机和虚拟机使用共享的目录,虚拟机只提供开发环境。这样的话,开发环境随处可用。代码目录只要在物理机上共享就可以使用这套开发环境。
一.Windows7 PowerShell 2.0升级到 PowerShell 5.1:
这里使用的是win7系统,可能会出现powershell过低的情况,所以需要先检查本机的powershell版本:
Windows + R 输入powershell回车,打开命令行窗口,输入$PSVersionTable
,查看powershell版本号
Windows7 PowerShell 2.0升级到 PowerShell 5.1:
1.安装必要的.net插件
确保你已经安装了.net 4.5以上。如果没装,直接装.net 4.6即可Microsoft .NET Framework 4.61
https://www.microsoft.com/zh-cn/download/details.aspx?id=49982
1.2 Microsoft .NET Framework 4.61 简体中文语言包
https://www.microsoft.com/zh-cn/download/details.aspx?id=49977
1.3 装ps5.1安装包下载地址:
https://www.microsoft.com/en-us/download/details.aspx?id=54616
安装上图所示的插件后,再次查看powershell版本截图如下:
二.安装virtualbox和vagrant:
请务必完全参照以下步骤顺序一步步来:
1.下载并安装https://www.virtualbox.org/ 建议用迅雷下载比较快
2.下载并安装https://www.vagrantup.com/ virtualbox和vagrant版本要对应,建议都安装最新版的
3.重启--->cmd--->进入代码的项目目录f:--->mkdir devops--->新建一存放vagrant的项目目录mkdir data---->cd data-->vagrant box list列出本地模版(此时vagrant还需要一个模版vagrant box:虚拟镜像文件---下载地址http://cloud.centos.org/centos/7/vagrant/)这里我用的是自己网盘中的镜像,因为此镜像已有所有基础环境,不是纯净版-- >
- 添加镜像到Vagrant:
.最后如下可以看到镜像文件列表了
.初始化vagrant项目:如下命令后就会在当前目录下生成一Vagrantfile配置文件
.先不着急打开虚拟系统,我们配置vagrantfile,执行上面那条语句后生成的,对应生成的还有一个.vagrant文件,接下来是vagrantfile配置信息如下:
修改端口转发为8000(访问本机host的哪个端口时它会帮我转发到虚虚拟机guest的哪个端口)
config.vm.box = "centos7.1" #box名称
config.vm.hostname = "CentOS7" #win10系统下的主机名
config.vm.network "forwarded_port", guest: 8000, host: 8000 --->修改26行
config.vm.synced_folder "../data", "/vagrant_data", disabled: true --->修46行禁用默认同步目录
config.vm.synced_folder "F:/devops/data", "/share",type: "virtualbox" --->设置同步目录
由于vagrant没有Guest
Additions,通过vagrant不能创建共享文件夹,所以需要下载vbguest插件,当启动时自动安装Guest Additions
在命令行:
$ vagrant plugin install vagrant-vbguest --->需要花几分钟耐心等待
完成后启动系统,在命令行:
$ vagrant up --->这个要花点时间耐心等待
$vagrant halt --->同时在virtualbox图形软件中点击关闭虚拟机
$vagrant reload --->重新加载虚拟机-->如下图说明已经挂载成功!!
由于我们上面安装好了Guest Additions,需要修改vagrantfile配置文件,以免下次启动时重复安装Guest Additions,在配置文件最后一个end前添加两行命令:
config.vbguest.auto_update = false
config.vbguest.no_remote = true
$vagrant halt--->同时在virtualbox软件中点击关闭虚拟机
配置好后我们基本上已经配置好了虚拟系统,下一步在命令行启动系统
.启动虚拟机器:$ vagrant up有如下提示信息:网络/名称/端口转发/端口映射/ssh认证方式/目录映射
密钥生成是在F:\devops\data\.vagrant此隐藏目录中
.此时直接vagrant ssh就进入虚拟机了#sudo su - 切换root ---->vi /etc/ssh/sshd_config--->passwordAuthentication no-->改为yes如下两图:
.并systemctl restart sshd
.此时机器就起来了,然后exit退出。打开virtualbox如下图可看到有机器运行了
. 此时可直接关掉virtuabox因为占系统资源,并可直接用crt去连了:
用户名密码都是vagrant
此时如下图中自动挂载了一个本地的一个目录(在本地此目录中操作什么虚拟中就会有什么):
此时我在本机F:\devops\data目录下建一名为111.txt文件,在虚拟机中也能同步看到了
如下图:若上述图中没显示挂载目录则从下图中可以看出 centos/7 镜像缺少 Virtualbox Guest Additions---照上述几个步骤操作即可。
到此虚拟开发环境就搭建成功了!!
三.安装python
1. python和django的版本选择:
https://www.python.org/downloads/source/
https://www.djangoproject.com/download/ 打开它可看到中下图:所知要选长期也稳定版,否则后期官方不维护你项目就麻烦
https://docs.djangoproject.com/en/2.2/ ---阅读django2.2官文中有python版本依赖说明--选稳定版本python3.6
https://www.django-rest-framework.org/ ---阅读drf官文,看它对版本的要求
所以看完上述三个官文后版本就定了:python3.6 + django2.2
python官网中:
[root@centos7 ~]$ wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz 下载
2.安装依赖--python会用到的工具:如自动提示/ssl相关软件包
[vagrant@centos7 ~]$ sudo su - root
[root@centos7 ~]# 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
3.编译安装python
[root@centos7 ~]$ tar -xzf Python-3.6.6.tgz
[root@centos7 ~]$ cd Python-3.6.6
[root@centos7 Python-3.6]$ ./configure -prefix=/usr/local/python36 ---->指定安装目录
[root@centos7 Python-3.6]$ make && make install --->编译如下图结束后它帮我把pip和setuptools都安装了
4.配置pip源
tee /etc/pip.conf <<EOF
[global]
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com
[list]
format=columns
EOF
四.创建虚拟环境
1.用pip安装python的虚拟环境virtualenv--开发中用虚拟环境来开发为了隔离默认python环境
切换到vagrant用户:
[vagrant@CentOS7 ~]$ sudo /usr/local/python36/bin/pip3 install virtualenv
2.用virtualenv去初始化一python的虚拟环境:
[vagrant@CentOS7 ~]$ /usr/local/python36/bin/virtualenv ./python36env 生成一当前用户家目录下的此目录
3.进入虚拟环境:一定要在vagrant普通用户下进入
[vagrant@CentOS7 ~]$ source ./python36env/bin/activate
(python36env) [vagrant@CentOS7 ~]$
五.开发django项目:
1.安装django---用django2.2
(python36env) [vagrant@CentOS7 ~]$ pip install django==2.2.1
2.安装并配置数据库:安装vim:
sudo yum -y install vim 安装mariadb:
(python36env) [vagrant@CentOS7 ~]$ sudo yum -y install mariadb mariadb-server mariadb-devel
修改/etc/my.cnf配置:
[mysqld]
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8 启动服务:
sudo systemctl start mariadb
sudo systemctl enable mariadb
安装mysqlclient:----python的mysql扩展
pip install mysqlclient
初始化数据库: mysql_secure_installation
空(回车)--y--123456(root密码)--y,y,y,y,y
创建数据库:
mysql -uroot -p123456
create database devops CHARACTER SET utf8;
3.初始化django项目:
(python36env) [vagrant@CentOS7 ~]$ cd /vagrant/
(python36env) [vagrant@CentOS7 vagrant]$ django-admin startproject devops 启动django项目后如下图生成devops项目目录
用windows上装的pycharm软件(打开远程项目)打开此devops项目:
进行项目设置:
找解释器(用远程的)file-->setting-->project:devops--->project interpreter-->add这里选vagrant且它的目录一定要选vagrant的项目目录,此时它会把远程的python的全所包同步下来。
django 数据库配置:settings.py中:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'devops',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': 3306,
'OPTIONS':{
'init_command': 'SET default_storage_engine=INNODB;',
},
}
}
启动服务:第一种方式:
(python36env) [vagrant@CentOS7 vagrant]$ cd devops/
(python36env) [vagrant@CentOS7 devops]$ ls
devops manage.py
(python36env) [vagrant@CentOS7 devops]$ python manage.py migrate
(python36env) [vagrant@CentOS7 devops]$ python manage.py runserver 此时它就监听127.0.0.0:8000,但此时你访问此地址是访问不到的。
因为这个是一vm的linux机器,它只监听127.0.0.1这个网卡上的8000端口所以不行,得改成0.0.0.0的8000端口。
(python36env) [vagrant@CentOS7 devops]$ python manage.py runserver 0.0.0.0:8000 此时你在浏览器访问127.0.0.1的8000端口它就会帮转发到虚拟机中。
第二种方式:通过pycharm来启动给manage.py一个参数runserver 0.0.0.0:8000如下图,并点击三角号就运行了
此时在浏览器输入http://127.0.0.1:8000/ 就能看到如下图效果了
但是这里要注意下我的vagrant是用的nat网络模式:所以宿主机不能直接连虚拟机,得做如下文中设置
https://www.cnblogs.com/dbslinux/p/12982385.html
到此完整的python开发环境就搭建完成了!!!!
六.vagrant package 打包自己的box镜像
搭建完毕后等虚拟机的细节都调整好后强烈建议打包成自己的镜像,以后需要在其他电脑安装虚拟机环境或者电脑的虚拟机出问题的时候可以直接一键还原,不然要重新搭建有点繁琐。
开发环境配置一次可以生成box文件,可移植.我们在vagrant的虚拟机下面进行了一些操作之后想把它导出作为备份,为的是以后在别的机器上安装完vagrant以后可以立即导入自己熟悉的box进行开发。就是将虚拟机打包出去,方便以后或者别人直接使用。当别人拿到我们打包后的镜像文件,直接使用vagrant init即可使用,此时同样的会生成一个Vagrantfile配置文件,我们需要对虚拟机进行操作,直接在配置文件修改即可。
1、查看虚拟机名称
去到虚拟机安装目录,执行命令:vboxmanage list vms
这里有可能提示:‘vboxmanage’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。那是因为VirtualBox安装的时候没有将vboxmanage自动放入环境变量中,我们可以直接进入VirtualBox的安装目录执行这句命令,也就是VirtualBox.exe这个文件的同级目录.
data_default_1590575788478_13541就是我本地的虚拟机名称,复制下这个名字,后面打包box镜像需要用到。
2、执行打包命令
vagrant自带打包命令,需要去到你的vagrant目录下,也就是vagrantFile文件目录下执行
F:\devops\data>vagrant ssh
F:\devops\data>vagrant halt
3、部署回自己的box环境
到上面第二步的时候已经打包完毕了,如果想在其他电脑部署自己的box很简单
先把box文件放到需要部署的磁盘目录下。
执行以下操作命令:
1、将box安装到vagrant容器
$ vagrant box add -name centos7 package.box
$vagrant init centos7
2、然后直接启动即可
$ vagrant up
一.1搭建跨平台的统一python开发环境的更多相关文章
- Windows搭建python开发环境,python入门到精通[一]
从大学开始玩python到现在参加工作,已经有5年了,现在的公司是一家.net的公司用到python的比较少,最近公司有新项目需要用到python,领导希望我来跟其他同事training,就有了这篇博 ...
- Eclipse和PyDev搭建python开发环境
Eclipse和PyDev搭建python开发环境 1.1整体目标 本文档作为python学习者的新手教程,通过本教程能够了解python用途.语法.在实际工作中的应 ...
- Python开发环境的搭建(win7)
一个.安装和配置Python 事实上,在开发python最好ubuntu环境.简单和易于扩展每个package. 在谈到如何win7建筑物Python开发环境. 因为python十字-platform ...
- Python开发环境搭建指导
本文主要介绍Python开发环境的搭建.主要包括如下几部分内容: (1)Python软件的安装.注意版本的选择和安装过程中选项的勾选. (2)pip工具环境变量.镜像源的配置使用和常用镜像源介绍.pi ...
- Windows搭建python开发环境
python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它 基本概念Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum ...
- 『无为则无心』Python基础 — 3、搭建Python开发环境
目录 1.Python开发环境介绍 2.Python解释器的分类 3.下载Python解释器 4.安装Python解释器 5.Python解释器验证 1.Python开发环境介绍 所谓"工欲 ...
- python开发环境搭建
虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...
- Eclipse中Python开发环境搭建
Eclipse中Python开发环境搭建 目 录 1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...
- ubuntu上用eclipse搭建java、python开发环境
上一篇文章讲到如何在windwos上用eclipse搭建java.python开发环境,这一讲将关注如何在ubuntu上实现搭建,本人使用虚拟机安装的ubuntu系统,系统版本为:14.04 lts ...
随机推荐
- Java实现 蓝桥杯 算法训练 Beaver's Calculator
试题 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...
- java实现第五届蓝桥杯猜年龄
猜年龄 题目描述 小明带两个妹妹参加元宵灯会.别人问她们多大了,她们调皮地说:"我们俩的年龄之积是年龄之和的6倍".小明又补充说:"她们可不是双胞胎,年龄差肯定也不超过8 ...
- 震惊!当Python遇到Excel后,将开启你的认知虫洞
本文主要内容: 1. Excel,你为什么如此强大 2. 软件开发也需要团队作战 3. Excel的集成方案演化 4. macOS特有的集成方案:applescript 5. Python与Exc ...
- 【asp.net core 系列】4. 更高更强的路由
0. 前言 在之前我们介绍了请求通过路由寻找到控制器,以及控制器与视图的数据流转.那么,我们回过头来,再看看路由的一些其他用法. 1. 路由属性(Route Attribute) 按照英文的直接翻译, ...
- 温故知新-快速理解Linux网络I/O
文章目录 摘要 阻塞.非阻塞.同步.异步 Linux下的I/O模型 阻塞I/O模型 非阻塞I/O模型 I/O复用模型 select poll epoll 信号驱动I/O模型 异步I/O 参考 你的鼓励 ...
- 实验五shell脚本编程
项目 内容 这个作业属于哪个课程 <班级课程的主页链接> 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043220-万文文 作业学习目标 1)了解shell脚本的概念及使用.2 ...
- Flask 四剑客
Flask 四剑客 返回字符串,返回 html , 跳转路由,返回 json from flask import Flask, render_template, redirect, jsonify a ...
- 撒花,推荐一下我怒肝的 GitHub
缘起 之前一直有很多小伙伴们找我,让我聊一聊如何学习 Java ,我都直接回复了一个思维导图,后来想一想觉得回答不是很认真,我的初衷是想让小伙伴们根据思维导图中的知识点,采取各个击破 的原则,哪里不会 ...
- C#数据结构与算法系列(二):稀疏数组(SparseArray)
1.介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: 1.记录数组一共有几行几列,有多少个不同的值 2.把具有不同值的元素的 ...
- java中的引用类型:强软弱虚
java中的引用类型共4种:强软弱虚,具体每种类型的特点和应用场景.记录下.本文是看了马士兵老师的视频后记录整理的.加深印象. 基本概念 1. 强引用 强引用是使用最普遍的引用.如果一个对象具有强引用 ...