如何在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 命令刷新一下先(下面我会写这个问题,怎么解决的)
是什么原因呢?
显然,它自动将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,就可以直接创建环境了;
例如
- virtualenv –no-site-packages testPython(这种会报错);
- 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/