离线环境安装anaconda+pycharm+impyla
1.在外网配置好虚拟环境,anaconda支持虚拟环境的安装及复制移植。
-
1.1安装及配置anaconda。
-
1.1.1创建及配置虚拟环境:
-
conda create -n gszq python=3.6 创建虚拟环境,指定python环境为3.6
-
conda env list 查看现有虚拟环境
-
conda activate gszq 启用创建的虚拟环境
-
1.1.2连接hive,公司的hive版本为cdh5.16,使用impyla连接,下面安装依赖包
-
conda install -c anaconda impyla conda安装impyla 会自动安装依赖包
-
conda install -c anaconda thrift_sasl==0.2.1 thrift_sasl版本要降为0.2.1
-
pip install thriftpy2 thriftpy2包需要额外安装.
-
最终连接hive需要的包及版本如下
- 离线复制移植虚拟环境。
-
由于公司内网是隔离的,无法在线安装,这里采用离线移植的方法,注意这种方式是将整个虚拟环境复制,包括了conda和pip安装的所有依赖包。
-
conda create gszq_base --clone gszq 复制一份备份虚拟环境
-
cd 到env文件夹目录,找到gszq文件夹,压缩文件夹
-
拷贝至离线环境的目标终端,解压缩
在离线目标终端conda env list 即可看到我们创建的虚拟环境了。
3.python连接hive
-
安装pycharm,启用gszq_base虚拟环境
-
采用connect连接hive,代码如下:
import impala.dbapi as ipdb
conn = connect(host="xxx.xxx.xxx.xxx", port=10000, database="xxx", auth_mechanism="PLAIN")
cur = conn.cursor()
cur.execute("show databases")
print(cur.fetchall())*
会报错 cont concat str to byte,如下解决
- 在init.py第94行,加入标红部分
header = struct.pack(">BI", status, len(body))
if (type(body) is str):
body = body.encode()
self._trans.write(header + body)
self._trans.flush()
至此,就成功的在公司内网机安装了anaconda+pycharm+impyla环境
本文参考
https://www.cnblogs.com/always-fight/p/11887808.html
https://blog.csdn.net/Liekkas_Javey/article/details/97792622?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task