一、为什么不直接在服务器部署python3
因为centos6.5系统自带python2.6,如果直接安装python3,会造成有些自带的脚本无法运行,比如yum,所以为避免这种情况的发生,可以先安装anaconda2,通过建立python3的虚拟环境,来解决这一问题
二、服务器安装anaconda2的方法
1、首先安装bzip2(如果已安装请忽略,如何安装可键入bunzip2自查)
2、下载对应版本的anaconda软件包(根据自己系统来定)
三、建立虚拟环境
1、建立和启动虚拟环境
conda create -n XXX python=3.5
安装成功后就可以在你所安装的anaconda2目录下的envs下看到啦
source activate XXX
启动你创建的虚拟环境
2、未联网情况下的服务器如何快速创建虚拟环境
![](https://img.haomeiwen.com/i5521948/9b295a1cec866cdb.png)
在一台联网的服务器上新建一虚拟环境,在上面将你所需要的所有包安装好,然后打包丢到未联网的服务器的envs路径下,就完成啦~
3、联网情况下如何快速安装所有包和依赖包
首先,先启动已经能够顺利使用的虚拟环境,然后运行pip freeze >requirements.txt,这时候,在当前目录就已经生成一个名为requirements.txt的文件,里面就含有此环境下所安装的所有的包。
![](https://img.haomeiwen.com/i5521948/e089be91ab68de05.png)
然后如果另外一台(你即将安装)服务器是联网的,那么直接将该文件传上去,直接pip install -r requirements.txt就可以啦。如果未联网,要么就是安装上面2的方法,要么就一个一个把包下载下来去安装,都是可以的。
四、如果将用python3代码编辑好的文件,在服务器上自动调度
因为自动调度的时候,如果没有特殊指定,肯定是会启动python2而不是python3来跑文件,自然会报错,我目前知道的有两个方法可以解决这个问题。
1、指定解析器及解析器所在位置
我们创建python文件的时候,一般/可能会出现这么两行代码,那么第一行就是我们要改的地方。
![](https://img.haomeiwen.com/i5521948/97bd28d3225279e9.png)
将第一行的解析位置设定为虚拟环境中python的所在位置,如下,便是:
#! /root/anaconda2/envs/lib_bak/bin/python
![](https://img.haomeiwen.com/i5521948/fba7a5546be07b56.png)
这样就好啦
2、运行时指定python位置
我们在服务器运行python脚本时,一般为:python XXX.py
这时候是自动启动python自带python的,所以我们同样可以用上面1步骤说到的改变路径来完成,直接/root/anaconda2/envs/lib_bak/bin/python XXX.py就可以啦。
3、注意
一般最好将上述文档写成sh文件再自动调度,不然会出现莫名其妙的报错。
网友评论