一.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实现 LeetCode 494 目标和
494. 目标和 给定一个非负整数数组,a1, a2, -, an, 和一个目标数,S.现在你有两个符号 + 和 -.对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面. 返回可 ...
- Java实现 LeetCode 309 最佳买卖股票时机含冷冻期
309. 最佳买卖股票时机含冷冻期 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 . 设计一个算法计算出最大利润.在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股 ...
- Java实现 LeetCode 60 第k个排列
60. 第k个排列 给出集合 [1,2,3,-,n],其所有元素共有 n! 种排列. 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123" &q ...
- C++实现车轮轨迹
标题:车轮轴迹 栋栋每天骑自行车回家需要经过一条狭长的林荫道.道路由于年久失修,变得非常不平整.虽然栋栋每次都很颠簸,但他仍把骑车经过林荫道当成一种乐趣. 由于颠簸,栋栋骑车回家的路径是一条上下起伏的 ...
- Java实现提取拼音首字母
在很多软件中,输入拼音的首写字母就可以快速定位到某个词条.比如,在铁路售票软件中,输入: "bj"就可以定位到"北京".怎样在自己的软件中实现这个功能呢?问题的 ...
- 欧几里得算法求最大公约数-《Algorithms Fourth Edition》第1章
最大公约数(Greatest Common Divisor, GCD),是指2个或N个整数共有约数中最大的一个.a,b的最大公约数记为(a, b).相对应的是最小公倍数,记为[a, b]. 在求最大公 ...
- 00-04.kaliLinux-手动配置IP地址
在KaliLinux中手动配置网卡 用vim打开网卡的配置文件,配置各个网卡信息 root@kali:~# cd /etc/network root@kali:/etc/network# ------ ...
- 杨辉三角 js 练习
//打印杨辉三角a[[],[],[]] function fn(n){ //i=0 1 2 3.. var a = new Array(n); //行 1 2 3 4.. 创建二维数组. for(va ...
- python基础:如何使用 pip 安装第三方库
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 在这个生活中处处都是大数据和人工智能的时代,总是能在各种角落看到 Pyth ...
- ecshop php商城系统数据库结构及表的介绍分析
ecshop共86张表,确实比较多,不过功能确实最完善的. 表结构分析 ecs_account_log // 用户账目日志表 ecs_activity // 活动表(代码,名称,开始,结束,描述) ...