天天看点

linux 搭建python虚拟环境

查看linux版本 , 不同版本编译的虚拟环境不能公用

cat /etc/issue

cat /etc/redhat-release

一、linux python安装

1、安装依赖

yum install -y gcc

yum install -y zlib* openssl*

yum install -y libffi libffi-devel

2、下载最新的python tar.gz包

tar -xzvf xxx.tar.gz

cd xxx

./configure --prefix=/app/xxx

make

make install

注意:如果在make install 报错“zipimport.ZipImportError: can't decompress data; zlib not available”,是因为缺少依赖,需要

yum install zlib  zlib-devel,完成后再次尝试正常。

3、进入安装目录

cd /app/xxx/bin

./python3 测试是否安装正常

如果嫌麻烦可以直接添加环境变量(生效本次终端)

export PATH="$PATH:/app/xxx/bin/" 

可以直接修改添加永久环境变量(永久生效)

cd /etc/profile

在最下面添加如下内容

# python37 path
export PYTHON_HOME=/app/python/python37
export PATH=$PATH:${PYTHON_HOME}/bin
           

source /etc/profile刷新使之生效

二、虚拟环境搭建

1、python原生venv 在移植时候发现还有点问题,所有采用了下面另外一种方法

python3 -m venv test_venv

2、virtualenv

pip3 install virtualenv(如果慢可以指定国内pip源 pip3 install -i https://pypi.doubanio.com/simple/ virtualenv)

virtualenv -p /app/python3/bin/python3 --always-copy /app/Venv

这里务必要加上--always-copy,代码是真是的文件拷贝,而不是软连接,因为当你将搭建好的虚拟环境移植到其它机器时,软连接是找不到的。

三、测试是否成功

将搭建的虚拟环境拷贝到新的机器同样目录,然后source venv/bin/activate

python 发现正常

但是 键入 pip list 时候会报错,有好多包找不到

经大神分享,是创建虚拟环境时lib下的python3.x里面有好多包没有复制到虚拟环境导致的,

因此,将源编译器中lib下python3.x里面所有的包复制到虚拟环境中,再次测试,发现完全正常。

四、将虚拟环境包放到不同路径

只需要将bin目录下相关路径对应修改即可

一般的话,需要修改pip,easy-install,activate.sh几个文件,当然,最好是全部改了(建议写个脚本修改)