centos安装virtualven后, pip list可以看到,但使用命令virtualven时会提示“bash:virtualven:未找到命令...”
解决办法:
vi /etc/profile
加入一行代码:
加入一行代码
PATH=$PATH:/usr/local/python3/bin
virtualenv通过创建独立Python开发环境的工具, 来解决依赖、版本以及间接权限问题。
安装
在安装virtualenv之前,需要安装至少有一个版本的Python;因为virtualenv是python的一个第三方模块,必须基于python环境才能安装。
pip安装,默认安装当前最新版本
pip install virtualenv
或者由于权限问题使用sudo临时提升权限
sudo pip install virtualenv
如果同时有python2和python3时,可以使用pip3安装
pip3 install virtualenv
源码安装
下载源码
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ [sudo] python3 setup.py install
使用virtualenv
1.创建独立运行环境
创建一个独立的Python运行环境,命名为 mypy37
virtualenv --python=python3.7 mypy37
--python=python3.7 指定python3.7环境;系统中安装了多个python版本时非常有用;默认情况下virtualenv会选取它的宿主python环境
如果在命令行中运行virtualenv --system-site-packages ENV, 会继承 (安装目录)lib/python3.7/site-packages下的所有库, 最新版本virtualenv把把访问全局site-packages作为默认行为default behavior.
lib:所有安装的python库都会放在这个目录中的lib/pythonx.x/site-packages/下
bin:bin/python是在当前环境是使用的python解释器
2.激活环境
#在mypy37目录下使用如下命令
[root@centos7 mypy37]# source ./bin/activate #激活当前virtualenv
(mypy37) [root@centos7 mypy37]# #注意终端发生了变化
使用pip list查看当前库
3.安装需要的软件包
在mypy37环境下,用pip安装的包都被安装到mypy37这个环境下,系统Python环境不受任何影响。
1)可以一个个安装
pip install [package name]
2 )可以批量安装(前提是有已经生成的requirement.txt文件)
pip install -r requirement.txt #根据requirement.txt生成相同的环境
4.退出virtualenv环境
(mypy37) [root@centos7 mypy37]# deactivate
5、虚拟环境复制迁移
直接压缩生成的venv文件夹:
tar -zcvf mypy37.tar.gz ./mypy37
然后拷贝迁移至其他服务器下进行解压:
进入./venv/bin/下修改activate文件中参数:
VIRTUAL_ENV="/home/test/mypy37"
export VIRTUAL_ENV
将上述VIRTUAL_ENV修改为当前venv文件夹正确的路径,然后执行:
source activate
然后执行:
which python
或者
which pip
查看是否是虚拟venv路径下的工具,如果是的话,则成功。
安装过程中遇到的问题及解决办法:
如果加了参数: --no-site-packages才出现的这个错误,那可以去掉了。
因为virtualenv早就默认这个参数了
查看python的安装目录的方法如下:
当有多个python环境时,直接使用virtualenv报错时,可以使用
python3 -m virtualenv --version
*************** *******************************************
生成可打包环境 ---好像有问题----还没有找到原因,当前版本 virtualenv的版本为20.8.1,不知道是不是和virtualenv的版本为20以上有关系
virtualenv --relocatable ./ # 对当前已经创建的虚拟环境更改为可迁移
***********************************************************