linux中如何使用虚拟环境


如何在linux 上使用python虚拟环境?百度找的很多,都是差不多的,都是用不了。我自己找了找资料,弄了出来,可以给大家做个参考。

linux中如何使用虚拟环境

linux上先安装python

我用的是centos ,在centos上安装python, 这个百度一下就有。一般linux 都会默认安装python2.7或者2.5 ,我们可以自己根据需要去安装python3, 建议使用3.7 或者3.9, 因为3.8 有内存泄露的bug, 当然,如果你的项目不是很大, 这个无所谓。安装python3 成功后,要把python3 和pip3 用软链接加到 /usr/bin 下 。我个人喜欢用python3.7.5 版本,下面的案例都是用这个版本来举例。

用python3 安装 virtualenv

virtualenv是用来管理虚拟环境的库, 我们先要安装这个库才能使用虚拟环境。

pip3 install virtualenv==20.19.0

如果不指定版本,则是会安装最新版的 virtualenv, 这个库和python3.7.5 会有包冲突,
我当时是降低了一个版本安装下来的。你们也可以指定一个更低一些的版本。

去指定一个python 项目路径,作为项目管理的总目录

比如我此时在这个目录下(/home/admin/Public/project),做了一个python 项目总路径,在这个服务器上所有的python 项目都放在这里。

新建一个项目的目录,并用给这个项目新建一个虚拟环境

比如我就在这个project 目录下新建了一个 名叫one 的项目(/home/admin/Public/project/one),然后就cd 进入这个项目里, 并且给项目新建一个虚拟环境

命令是 python3 -m virtualenv Env    我给这个虚拟环境命名是Env
这个时候,就能看到项目目录下,有个虚拟环境(Env)的目录了

进去到虚拟环境下的bin 目录中

可以看到激活虚拟环境的这个命令, 不能直接运行。
激活虚拟环境的文件不能直接运行
那么我们看看是怎么回事?
查看一下文件的内容

这里提示,需要先 用 source 命令刷新一下先(下面我会写这个问题,怎么解决的)

是什么原因呢?

使用虚拟环境的python解析器

通过sys.path 命令 看到结果
显然,它自动将venv目录下的lib目录添加到sys.path中,env目录输出的激活python虚拟环境后的环境变量path

那么要怎么使用虚拟环境中的python 解析器呢?

虚拟环境安装在项目地址中

也就是说,如果我们想要使用虚拟环境来运行项目, 可以将虚拟环境的lib下的python命令起个别名也软链接到 /usr/bin 目录下,也可以在执行项目的时候指定用项目下的虚拟环境来启动项目(就是用shell 来运行),这里是把虚拟环境装在项目地址中。

虚拟环境管理(对着csdn查到的进行操作出错,实际上是库的兼容问题)

步骤一

安装python3 ,然后安装 virtualenv(版本不要装最新的,用16.7.9), 再安装virtualenvwrapper(我安装的virtualenv 版本会自带这个,所以不需要再安装一次 )

步骤二

这个时候, 去到 /usr/local/python3/bin 目录下,看到有 virtualenv 这个 可执行文件了,把这个可执行文件 做软连接到 /usr/bin 目录下,ln virtualenv /usr/bin/virtualenv

步骤三

随后用which python3 拿到 python3的路径, 用 which virturalenv 拿到 路径

步骤四

默认配置文件 .bashrc

#设置virtualenv的统一管理目录,以后自动下载的虚拟环境都放在这
export WORKON_HOME=$HOME/.virtualenvs  #虚拟环境的存放路径

#指定python解释器的本体
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
#执行virtualenvwrapper安装脚本
source /usr/local/bin/virtualenvwrapper.sh

步骤五

退出编辑并刷新配置文件 source ~/.bashrc

步骤六

创建虚拟环境的命令是 mkvirtualenv 虚拟环境名字
退出虚拟环境的命令 deactivate
查看所有的虚拟环境 lsvirtualenv
查看已经创建的虚拟环境 workon
使用指定的虚拟环境 workon 虚拟环境名字

期间遇到的问题

在做这个的 过程中遇到的问题是 版本冲突。
最近学习python看到需要安装虚拟环境 virtualenv;
我本地安装的版本是20.4.2;
教程版本是16.7.9;
使用指令 virtualenv –no-site-packages 报错;
报错内容:virtualenv: error: unrecognized arguments: –no-site-packages;

原因:virtualenv高版本和低版本不支持–no-site-packages;

1.将virtualenv版本搞到支持 –no-site-packages 的版本;
2.高版本virtualenv语句为 virtualenv xxxx,就可以直接创建环境了;

例如

  1. virtualenv –no-site-packages testPython(这种会报错);
  2. virtualenv testPython(成功);

linux上pip 修改镜像源(永久修改)

mkdir /root/.pip
touch /root/.pip/pip.conf
vim pip.conf

加上如下这两行
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/


文章作者: 陌上人如玉
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 陌上人如玉 !
  目录