环境搭建篇

PRE:

因为之前都是在本机上去搭建环境,最后搞的本机上很乱,而且稍微一不小心动到了一部分环境,就把环境搞坏了,所以想到搭建虚拟环境。然后在此虚拟机上搭建python环境

搭建虚拟环境有两个比较流行的方式:

    1. docker搭建环境

    2. vagrant+virtualBox

根据网上的资料,比较来说2方式比较笨重,而1方式比较轻便,其实我很想使用docker来搭环境,但是因为我还没有对docker有一个很好的了解,所以我采取了vagrant+virtualBox的方式。

现在介绍vagrant + virtualBox的工作方式:

这种方式本质上是在host(本机)上搭一个虚拟机,然后把环境搭建在虚拟机器里,然后通过文件夹共享的方式来实现host代码与虚拟机里的代码一致,直接在虚拟机里运行代码。virtualBox扮演一个电脑硬件的角色,vagrant扮演管理这些电脑硬件的角色,而运行于硬件上的操作系统,则是对应的系统镜像。

下载地址:

virtualBox: https://www.virtualbox.org/

vagrant: https://www.vagrantup.com/  

基础镜像: http://www.vagrantbox.es/



搭建步骤:

1. 新建一个目录,作为此虚拟机的目录,推荐将镜像放在这里

2. 在本目录下,执行 vagrant init {你想命名虚拟机的名字}  {对应镜像的路径}

    如:vagrant init pythonEnv centos.box

3. 命令执行完成之后,会有对应的 Vagrantfile 文件生成,此文件是虚拟机的配置文件

找到 config.vm.network "private_network", ip: "192.168.33.10" 这一行,去掉前面的注视(本行的用于分配相对于host的ip地址,用于之后通过ssh访问本虚拟机,或把host的http请求打到虚拟机上)

找到 config.vm.synced_folder "xxxx", "yyyy" 这一行,去掉前面的注释(本行用于把host的xxxx文件夹与虚拟机的yyyy文件夹相同步,即成为共享文件夹,实现host代码与虚拟机的代码一致)

最后在文件末的end之前的一行添加

config.ssh.username = "vagrant"

config.ssh.password = "vagrant"

用于设置通过ssh访问时的用户名和密码

4. 执行vagrant up (用于启动虚拟机的命令)

5. 通过xShell等工具,使用 ssh vagrant:vagrant@192.168.33.10 登录虚拟机

此时一个裸的centos环境就搭建完毕了

坑: 对于使用windows的小伙伴,需要注意virtualbox5.0之前的版本是与win10不兼容的,如果还是报错,尝试直接用virtualbox客户端登录虚拟机,如果出现 " VT-x/AMD-V 硬件加速在您的系统中不可用。某些虚拟机(如OS/2和QNX)需要该功能,并且没有它将无法启动。" 的错误,你可以参考http://blog.csdn.net/u012990532/article/details/51285338;另外在关闭Hyper-V之后,你可能还需要尝试开启vt-x,这就学要改你的bios里的设置了。(简直坑爹)

6. 对于python,一般linux上都会有自带python,所以先使用 python -V 命令来查看是否有python和对应的python版本是什么。比较可惜的是,一般linux都会有自带python2.7,但我想用python3.5+的,所以我就只能再在虚拟机里手动再弄一个python3了。

7. 下载python3.6源码:wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

8. 安装依赖:yum install openssl-devel libxslt-devel -y

我的环境会显示  已加载插件:fastestmirror 您需要 root 权限执行此命令。

不清楚这个地方为什么会现实这个,fastestmirror是yum的一个插件,为什么会在我执行yum install xxxx的时候加载呢?有懂的小伙伴希望不吝赐教。然后我直接执行 sudo yum install openssl-devel libxslt-devel -y 可以成功执行。另外,这个依赖是我从网上教程上看到的,1.大家是怎么知道需要这两个依赖的,像php的话,会在官网的文档里有,但是我并没有在python的官网上看到这样的文档或者这样的提示(后来发现是由这样的文档的),2.OpenSSL是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。xslt本身是一种定义xml转换的xml语言,而libxslt是为GNOME项目而开发的XSLT的C库,gonme是一个提供图形界面的。而具体为什么依赖这个此处并不太懂,先主攻python,如果有了解的希望能解答一下。

9. 安装:分四个步骤  解压 、配置(configure)、编译(make)、安装(make install)

tar  zxvf    python.tgz  -C  python

## (将python.tgz文件解压到 python文件夹 中,若没有python文件夹则手动创建)

./configure --prefix=/usr/python3.6

##(需先cd到python文件夹下,然后此步用于配置安装路径,如果不加--prefix选项则会放到默认路径,就像windows安装文件会放在c盘软件的默认名字的地方一样,不便于管理。具体来说有如下两点:1.为了以后的维护方便,如果没有用这个选项,安装过程结束后,该软件所需的软件被复制到不同的系统目录下,很难弄清楚到底复制了那些文件、都复制到哪里去了—基本上是一塌糊涂。2. 便于卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。 优点2我具体并没有这样操作过,但是优点1是显然的);

##另外有可能这个路径不存在,如果不存在你可以手动创建,如果没有权限用sudo

make

##make,这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

##我这里编译发现了一些警告:

###/home/vagrant/Python-3.6.1/Modules/_ctypes/_ctypes_test.c:在函数‘_testfunc_large_struct_update_value’中:/home/vagrant/Python-3.6.1/Modules/_ctypes/_ctypes_test.c:53:42:警告:形参‘in’被设定但未被使用 [-Wunused-but-set-parameter]

###

make install

##make install,这条命令来进行安装(当然有些软件需要先运行 make check 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件,如无权限则加sudo)

make clean

##清除编译产生的可执行文件及目标文件(object file,*.o) 

##不执行也没问题,同样的需要权限

10 把python加入环境变量

sudo vim /usr/profile.d/python3.sh

###在 /usr/profile.d下新建python3.sh,/usr/profile会自动去读取 /usr/profile.d下的文件,把相应的配置放在/usr/profile.d下会方便管理

写入代码    export PATH=$PATH:/usr/python3.6/bin 

###此段代码时将python的环境变量写入系统,类似于在windows下将路径写入高级设置-环境变量-path中

保存退出后,重新编译一下

. /usr/profile

然后 python3 -V 输出版本号,则大功告成

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容