常见问题

手撕Python-Linux系统离线安装Anaconda环境详解(云韵和美杜莎的野外战斗游戏)学会了吗,

时间:2024-06-22 00:15:26 来源:快捷一键重装官网 人气:34

核心提示: 作者:杰进 出品:程序员架构(ID:chengxuyuanjg)原创,转载请联系jb_quaner。 写在前面 数据安全,是大数据的核心基座能力,大数据为了安全考虑,集群环境一般都是内网,并且与外网隔离。干大数据分析的,离不开Python以及大数据分布式集群。 因此,要依托Python编程环境在企业的大数据集群环...

快捷一键重装系统

作者:杰进

出品:程序员架构(ID:chengxuyuanjg)原创,转载请联系jb_quaner。

写在前面

数据安全,是大数据的核心基座能力,大数据为了安全考虑,集群环境一般都是内网,并且与外网隔离。干大数据分析的,离不开Python以及大数据分布式集群。

因此,要依托Python编程环境在企业的大数据集群环境里完成数据分析以及数据建模,在离线(脱网)的情况下安装部署符合自己的Python环境,就显得电脑系统重装非常重要了。

最近因为需要利用公司的数据中台,基于用户经纬度数据,完成空间计算,实现全国区域价值分析,需要在集群的客户端里部署python3.6环境以及安装geopandas、pyhdfs、pyspark模块,并且要求离线完成,重温了一下环境搭建过程,还是遇到不少问题,特此记录一下,总结下来,套路就是:

谁家要就用谁家的命令

缺什么就下什么

要什么就装什么

什么过期就更新什么(先卸旧再装新)

一、环境配置要求电脑系统重装

系统:Centos7.0(离线,不能联网)

Python版本:由于项目组需要,需要Python3.6 和Python3.8同时共存

Python第三方模块:geopandas(python 用来做地理空间分析的一个非常好用的模块,尤其在区域分析、空间计算匹配方面),pyhdfs(用于连接hdfs,读写文件),pyspark(编写Python语言的spark程序并提交运行)。

Anaconda:这里先说下电脑系统重装为什么选择安装Anaconda。首先,Anaconda本身就已安装了非常多的Python第三方模块(如numpy、pandas、matplot等),减少我们额外手动安装模块的工作,更大的好处是,有些第三方模块安装有比较多的依赖包,Anaconda都已经有了,我们只需要补充安装缺少的那部分就行。另外,Anaconda在对python的env环境管理方面也做得比较好,适合做项目环境隔离,删除项目A或者电脑系统重装项目A更新并不影响项目B,对于我们要同时共存Python3.8、Python3.6、Python2.7(系统自带),是非常适合的。对应回Python3.8和Python3.6,我们这里选择同时安装部署Anaconda4.10 和Anaconda4.3版本

安装包下载:(自行下载)Anaconda官网下载、Python模块下载(pypi)

二、Anaconda安装实战

Linux常用命令略过不讲(tar、电脑系统重装chmod、mkdir等,太常用),主要将conda和pip命令。

(一)Anaconda、conda、pip的区别

Anaconda是集成各类Python工具的管理平台,而conda是伴随着Anaconda而来的Python包和环境管理工具,pip是Python的包管理器。

conda install <包模块名>和pip install <包模块名> 都能安装Python的包,但两者还是有区别的:(电脑系统重装1)pip install Python包的时候,如果此时Python包需要其他依赖包并且当前Python环境还没安装时,pip并不会递归安装并报错。而conda install python包的时候,如果此时Python包需要其他依赖包并且当前Python环境还没安装时,conda 会自动递归安装相应的依赖包,当然得是联网的情况下。(2)pip仅是Python的包管理,而conda还是可以其他语电脑系统重装言的包管理,如R语言等。由于本次是离网安装,我选择pip install安装方式。

(二)Anaconda安装

1.安装Anacodna 4.10版本安装包(此版本安装的Python的3.8.8版本)

安装命令很简单,直接使用bash命令就行,步骤如下:

bash bash Anaconda3-5.5.1-Linux-x86_64.sh

快捷一键重装系统

见到“>>>"后,直接输入回车键

快捷一键重装系统

输入”yes“,表示同意接受相关规定

快捷一键重装系统

电脑系统重装处有三个选择:

第一个选择是直接按回车键进入下一步,此时Anaconda的安装路径认识是当前用户家目录下anaconda3。我这里的目录是/home/hadoopuser/anaconda3,其中hadoopuser是我的用户名。

第二个选择按Ctrl+ c 表示退出安装

第三个选择是,输入一个指定目录,作为Anaconda的安装目录。

这里我选择第三个,指定了一个目录:/home/hadoopuser/电脑系统重装modules/py38,后按回车,接下来就是自动安装了。

快捷一键重装系统

最后,会弹出以下的提示,说明安装成功,输入yes就可以了

快捷一键重装系统

重启一下客户端,就可以看到Linux用户名之前多了一个”(base)”的东西,说明默认启动并进入了base环境,这个后面详细介绍。

2.安装Anacodna 4.3版本(此版本安装的Python的3.6版本)

bash Anaconda3-5.0.1-Linux-x86_64.sh

接下来的电脑系统重装步骤和安装4.6版本的步骤基本一致,不同的是,安装路径我选择了 /home/hadoopuser/modules/py36。最后一步,同样选择添加到环境变量。

快捷一键重装系统

(三)conda常用命令

安装好之后,我们先来熟悉下conda的常用命令。当我们重新打开客户端后,用户名之前多了一个"(base)"的字样,这是Anaconda4.6版本以后的默认基础环境。

快捷一键重装系统

相应的,后续在创建了多个不同环境的时候,可以通过用户名电脑系统重装前那个小括号得知当前所处的是哪个python环境。

1.查看当前的虚拟环境有哪些

conda env list

快捷一键重装系统

上图可知,当前只有一个“base”的Python虚拟环境,路径是在/home/hadoopuser/modules/py38路径下。这里还可干多一件事,输入:Python --version,查看当前Python版本是多少。

快捷一键重装系统

这里,会有个疑问:刚才不是安装了Anaconda4.10和Anacon电脑系统重装da4.3两个版本,同时有Python3.8和3.6两个Python环境么?为什么这里只有一个。

这就是环境变量的问题了。回顾下我们安装的步骤,我们是先安装的Anaconda4.10,安装完成后是自动添加了环境变量,因此安装完后在hadoopuser用户下,在任意地方,都是可以直接输入conda 命令进行使用的。而后装的Anaconda4.3,最后结束的时候,我是没有选择添加环境变量,是为了不混淆来电脑系统重装两个版本的命令。那我们怎么使用Anaconda4.3版本以及查看它的相关配置呢,这就是使用绝对路径的问题了,回应开头说的:谁要就用谁家的命令,通过绝对路径指定具体命令。conda命令,在对应的环境的目录下的bin目录。

因此,想看Anaconda4.10下有哪些虚拟环境了,可以用:/home/hadoopuser/modules/py38/bin/conda env list

快捷一键重装系统

看Anaconda4.3电脑系统重装 下有哪些环境,用:/home/hadoopuser/modules/py36/bin/conda env list

快捷一键重装系统

这时候的环境环境名称是root了,这是Anaconda4.3版本的默认环境名称,路径是/home/hadoopuser/modules/py36。而且注意到此时路径下前面没有星号,是因为此环境没有被激活,当前激活的环境是Anaconda4.10的base,所以上面的图可以看到有个星号电脑系统重装。这时再用/home/hadoopuser/modules/py36/python --version,可以明确看到,root环境的Python版本号是3.6.3

快捷一键重装系统

2.查看当前安装包有哪些

如第一点所述,查看base(Anaconda4.10,python3.8版本)环境下已经安装了哪些模块,使用命令

/home/hadoopuser/modules/py38/bin/conda list

快捷一键重装系统

留意红框里面的电脑系统重装内容,提示的是查看出来的包是在py38路径下面。另外,截图里面的当前环境是base,其实直接在shell里面输入conda list,查看的也是base环境的已安装的包。

另外,罗列处的内容里面,第一列是包的名称,第二列是包的版本。

3.创建新虚拟环境(因为是离线,建议使用--clone方式进行克隆创建)

(1)4.3版本:/home/hadoopuser/modules/py36/bin/conda 电脑系统重装create --name python_project --clone root

快捷一键重装系统

上面的命令,创建了一个名为Python_project的环境,并且是根据root来复制的,就是初始环境与安装包和root环境的一模一样。注意,这里被复制的环境,只能是Anaconda4.3管理的环境(如root,因为root是Anaconda4.3的默认环境),不能是base,因为base是Anaconda4.10里电脑系统重装面的默认环境名称。如果细看一下会发现,其实以上的命令是在base环境里面输入的,但是我指定了conda命令的绝对路径(是py36,就是anaconda4.3版本的安装路径),因此,进行的操作是Anaconda4.3的操作。可以使用/home/hadoopuser/modules/py36/bin/conda env list 查看Anaconda4.3版本下面已经有多少个虚拟环境了:

快捷一键重装系统

可以看到,是已电脑系统重装经有两个虚拟环境,最左边的是虚拟环境的名称,分别是root和python_project(刚刚新建的),路径都在py36下,但我们自己新建的虚拟环境默认同意放在py36/envs路径下。同时,也要注意到,这两个环境和上面第一部看到的环境有点不同,就是这里没有星号,是因为当前激活的环境是Anaconda4.10版本的环境base,Anaconda4.3版本未被激活。

(2)4.10版本: /home/电脑系统重装hadoopuser/modules/py38/bin/conda create --name python_project --clone base,原理和结果和上面一样,只是被复制的环境变了,是base。由此也可以知道,不要跨版本复制虚拟环境。

同样使用 /home/hadoopuser/modules/py38/bin/conda env list 查看下Anaconda4.10版本里面已经有电脑系统重装多少虚拟环境了

快捷一键重装系统

可以看出,使用py38/bin/conda env list命令查出来的环境有三个:base、python_project(py38路径下的)、python_project(py36路径下的),和上面有点不同。此外,base环境带星号,说明当前被激活的环境是base环境(py38路径下的)。

4.激活环境

(1)4.10版本(4.6版本之后都是这样):conda activate <en电脑系统重装v_name>。如果<env_name>省略,则直接激活base环境。

(2)4.3版本(4.6版本前都是这样):source activate <env_name>,如果<env_name>省略,则直接激活root环境。

快捷一键重装系统

此外,以上命令可以在任意的环境里面输入进行激活其他环境,因此也相当于切换不同的虚拟环境了。

5.查看当前使用哪个环境

conda info -e 或者 conda info --env电脑系统重装。前面有个*号的代表是当前正在用的环境

6.查看conda版本

conda --version

7.关闭环境

--4.6版本后:conda deactivate <env_name>。如果<env_name>省略,则关闭base环境。

--4.6版本前:source deactivate <env_name> 。如果<env_name>省略,则关闭root环境。

8.关闭Anaconda Base环境自启动

电脑系统重装没有留意到,每次启动shell客户端后,都会有个(base)的东西在用户名之前,这是因为默认开启了开机自动激活base环境。可以通过以下命令进行关闭:

conda config --set auto_activate_base false

三、Python Geopandas模块离线安装

上面详细介绍了Anaconda的双版本离线安装(如果是单版本,会相当简单),介绍了几个常用的命令。接下来就实操下如果电脑系统重装进行Python的模块离线安装。当然,太简单的包安装,没什么挑战性,我们就装一个第三方模块:geopandas。

geopandas,类似pandas语法风格的空间数据分析Python库,其目标是尽可能地简化Python中的地理空间数据处理,减少对Arcgis、PostGIS等工具的依赖,使得处理地理空间数据变得更加高效简洁,打造纯Python式的空间数据处理工作流。本系列文章就将围绕geopand电脑系统重装as及其使用过程中涉及到的其他包进行系统性的介绍说明,每一篇将尽可能全面具体地介绍geopandas对应方面的知识,计划涵盖geopandas的数据结构投影坐标系管理文件IO基础地图制作集合操作空间连接与聚合。同时,这里也做下一篇预告,详细讲讲如何使用Python+geopandas进行空间计算匹配,完成特定区域的价值分析、商业选址。

(一)Python常用的安装命令以及常用安装包的文件格电脑系统重装式介绍。

上面介绍过,conda 和pip都可以用于Python的包安装。但因为是离线安装,所以感觉conda和pip的作用就是一样的了,因此这里就采用pip方式安装Python的包。而pip命令里面,我们主要熟悉使用两个就行:安装模块 pip install packagename.whl,卸载模块:pip uninstall packagename 。其中,.whl格式的文件本质上是一个压缩包,电脑系统重装里面包含了py文件,以及经过编译的pyd文件。方便在机器上进行python模块的安装。

除此之外,Python模块的安装还有另一种方式,就是使用源码安装(如下图红框所示)。

快捷一键重装系统

源码安装的方式是,先对gz文件进行家压缩,进入压缩后的目录,使用python命令进行安装:python setup.py install

(二)如何安装

此部分,我们按照第一部分里面的口令来确定安装流程。

1、谁家要就用谁家的命令

这里,电脑系统重装我们想Anaconda4.3版本的python_project环境里面安装geopandas模块(确定了是谁家的),因此后续的模块安装、卸载都要用对应的绝对路径命令(绝对防止出错):

/home/hadoopuser/modules/py36/envs/python_project/bin/conda  #用于查看环境相关信息

/home/hadoopuser/modules/py36/envs/py电脑系统重装thon_project/bin/pip

/home/hadoopuser/modules/py36/envs/python_project/bin/python

2.缺什么就下什么

正常来说,我们这里只需要安装个geopandas,只需要下载一个geopandas.whl文件或者geopandas.tar.gz文件即可,但每一个模块可能都有很多依赖包,需要同时安装或者需要将相应的包更新相应的版本,但这电脑系统重装又是离线安装,因此得先确认除了geopandas的安装包外,还需要其他什么包?如何确定。这里有个比较通用的方法(拿geopandas举例):

(1)下载geopandas的源码,就是那个tar.gz结尾的文件,并解压。下载地址,看第一章,pypi自行查找。

(2)进入到解压后的文件,直接查找是否有requirement.txt文件,如果有就最好了,因为这个文件直接就表明了当前模块需要依赖哪些版本的什么电脑系统重装模块包。如果没有,那也不用担心,因为有一个文件是必须会有的,那就是setup.py。cat查看setup.py文件,并找到以下相关内容(会有REQUIRES或者DEPENDENCIES相关关键字):

快捷一键重装系统

得知要安装geopandas需要pandas(版本号大于等于0.24.0),shapely(版本号大于等于1.6),fiona(版本号大于等于1.8),pyproj(版本号大于等于2.2.0)这四个模块电脑系统重装。然后使用/home/hadoopuser/modules/py36/envs/python_project/bin/conda list,列出当前环境已安装的模块包以及版本后,和需要的模块以及版本号做对比,看哪些需要安装或者更新。

经比对,当前环境只有pandas模块已安装,但pandas版本号是0.20.3不满足要求的大于等于0.24.0,需要更新到0.24.0。另外三个模块没有安装,也需要下载电脑系统重装安装。因此,这里,我们初步确定完成geopandas 需要依赖以下4样东西:

"pandas >= 0.24.0"

,

"shapely >= 1.6"

,

"fiona >= 1.8"

,

"pyproj >= 2.2.0"

,

当然了,这是一个递归的过程,更新geopandas需要依赖以上的模块,但安装以上的模块,可能也需要其他的模块,这些工作得先把这些模块的源码下载下来后,用上述的方法,进行确定,像剥洋葱一样电脑系统重装,层层往下剥,到最后一层后,安装好之后,再从底往上安装。

3、要什么就装什么,什么过期就更新什么(先卸旧再装新)

(1)pandas已安装,但版本后老旧,需要更新。更新的方式是,先卸载,再安装新版本。

##卸载旧pandas

/home/hadoopuser/modules/py36/envs/python_project/bin/pip uninstall pandas

快捷一键重装系统

输入“y",表示确认卸载。

##安装电脑系统重装新的pandas/home/hadoopuser/modules/py36/envs/python_project/bin/pip install pandas-0.25.3

-cp36-cp36m-manylinux1_x86_64.whl

(2)安装shapely1==1.7.1

/home/hadoopuser/modules/py36/envs/python_project/bin/pip in电脑系统重装stall Shapely-1.7.1

-cp36-cp36m-manylinux1_x86_64.whl

(3)安装fiona==1.8.20

/home/hadoopuser/modules/py36/envs/python_project/bin/pip install Fiona-1.8.20

-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.w电脑系统重装hl

快捷一键重装系统

这里安装fiona=1.8.20,出现了个问题,如红框所示:collecting attrs>=17。说明,安装fiona1.8.20需要依赖于attrs>=17,就是说当前的环境里面没有符合的attrs,于是就出现了我们上面提到的,这种安装会是一个递归查找安装问题,我们需要安装geopandas的前提是要有fiona1.8.20,要安装fiona1.8.20的前提是要有attrs17.因此,电脑系统重装依旧是安装上面的套路走:下载fiona1.8.20.tar.gz源码文件=》解压缩=》进入解压缩后目录,查看setup.py文件:

快捷一键重装系统

找到requirement相应的位置,得知,安装fiona1.8.20需要以下依赖:

attrs>=17certifi

,

click>=4.0

,

cligj>=0.5

,

click-plugins>=1.0

,

six>=1.7

,

munch

,

"setuptools"

,

enum34;电脑系统重装 python_version < "3.4"

和conda list已安装的包进行比对,发现

attrs>=17  #未安装certifi #已安装click>=4.0#已安装cligj>=0.5#未安装click-plugins>=1.0#未安装six>=1.7#已安装munch#未安装"setuptools"#已安装enum34;  #未安装

因此,针对以上的包,在pypi上下载相应的模块,并使电脑系统重装用/home/hadoopuser/modules/py36/envs/python_project/bin/pip install进行安装即可,这里不再赘述,注意下载安装包的时候选择对应的系统以及python版本号就行了:

/home/hadoopuser/modules/py36/envs/python_project/bin/pip install attrs-21.2.0

-py2.py3-n电脑系统重装one-any.whl

/home/hadoopuser/modules/py36/envs/python_project/bin/pip install click_plugins-1.1.1

-py2.py3-none-any.whl

/home/hadoopuser/modules/py36/envs/python_project/bin/pip install cligj-0.7.2

-py3-n电脑系统重装one-any.whl

/home/hadoopuser/modules/py36/envs/python_project/bin/pip install munch-2.5.1

.dev12-py2.py3-none-any.whl

/home/hadoopuser/modules/py36/envs/python_project/bin/pip install enum34-1.1.10

-py3-n电脑系统重装one-any.whl

到此为止,fiona的相关依赖已全部安装完成,这里可以进行fiona1.8.20安装。

/home/hadoopuser/modules/py36/envs/python_project/bin/pip install Fiona-1.8.20

-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl

(4)安装pyproj >=电脑系统重装 2.2.0/home/hadoopuser/modules/py36/envs/python_project/bin/pip install pyproj-2.5.0

-cp36-cp36m-manylinux1_x86_64.whl

4.安装geopandas

以上的步骤已经把geopandas所需要的依赖都全部安装完成,接下来可以安装geopandas了。可以直接用/home/hadoopuser电脑系统重装/modules/py36/envs/python_project/bin/pip install 的方法进行安装。但这里演示下用源码安装的方式安装。

(1)先解压geopandas的源码安装包,tar.gz文件。

(2)进入解压后目录,可以发现有setup.py文件,这个是必须会有的

(3)执行python setup.py install命令。记住,要用对应的绝对命令

/home/hadoopuser电脑系统重装/modules/py36/envs/python_project/bin/python setup.py install

快捷一键重装系统

5.关于whl包安装的一个常见错误

快捷一键重装系统

如上图,安装pyproj-2.5.0-cp36-cp36m-manylinux2010_x86_64.whl 时,提示“pyproj-2.5.0-cp36-cp36m-manylinux2010_x86_64.whl is not a supp电脑系统重装orted wheel on this platform”,表示当前安装包不被当前版本支持。但安装包确实是在pypi官方下载,并且系统(linux)和版本号(cp36)都对应上了。

其实这里会有一个潜在的问题,就是python会要求python安装文件可以包含什么字符。要确定当前的python版本支持什么名称的字符,可以通过以下方式:

(1)进入python

(2)import pip

(3)print(电脑系统重装pip.pep425tags.get_supported())

快捷一键重装系统

print的结果:

[

(cp36, cp36m, manylinux1_x86_64), (cp36, cp36m, linux_x86_64), (cp36, abi3, manylinux1_x86_64), (cp36, abi3, linux_x86_64), (cp36, none, manylinux1_x86_64), (c电脑系统重装p36, none, linux_x86_64), (cp35, abi3, manylinux1_x86_64), (cp35, abi3, linux_x86_64), (cp34, abi3, manylinux1_x86_64), (cp34, abi3, linux_x86_64), (cp33, abi3, manylinux1_x86_64), (cp33, abi3, linux_电脑系统重装x86_64), (cp32, abi3, manylinux1_x86_64), (cp32, abi3, linux_x86_64), (py3, none, manylinux1_x86_64), (py3, none, linux_x86_64), (cp36, none, any), (cp3, none, any), (py36, none, any), (py3, none, any电脑系统重装), (py35, none, any), (py34, none, any), (py33, none, any), (py32, none, any), (py31, none, any), (py30, none, any)

]

对比一下我们要安装的包名称“pyproj-2.5.0-cp36-cp36m-manylinux2010_x86_64.whl ”,发现manylinux2010_x86电脑系统重装_64是不被支持的,而manylinux1_x86_64是被支持的。因此,只要去pypi上去重新下载一个名为“pyproj-2.5.0-cp36-cp36m-manylinux_x86_64.whl”的安装包即可。

快捷一键重装系统

当然,还有一个更直接的方法,使用mv方法,直接把名字改成可支持的名称即可。

结尾

以上的安装操作都是在不断的测试过程,因此不可能直接在集群的离线环境上操作,而是我们可以在测试环境里面,搭建一电脑系统重装个相同的安装环境,确定好所有需要的依赖包以及安装顺序后,再去集群的机器上面离线安装,效率就会高很多。

python geopandas 已安装完成,下一步可以使用geopandas里面强大丰富的功能,进行空间匹配计算了,个人觉得这部分在大数据领域里面,基于位置的分析还是很有价值的。

本文作者:杰进

声明:本文为 程序员架构 原创投稿,未经允许请勿转载。

👇更多原创内容请关注👇

快捷一键重装系统

1、记住看小电影前一定要检查一电脑系统重装下域名是不是  HTTPS 的,不然……

2、网友不满5G开关被取消,运营商和手机厂商谁在背锅?

3、消灭 for 循环!Python 的矩阵传播机制和矩阵运算

4、不懂这个工具类,你还说你会Java?

快捷一键重装系统

快捷一键重装系统

点分享

快捷一键重装系统

点点赞

快捷一键重装系统

点在看