摘要:virtualenv和virtualenvwrapper是创建和管理python虚拟环境的工具包,virtualenvwrapper是virtualenv的封装与扩展而来,方便创建、删除、切换虚拟环境
一、原理
macos ~/.bash_profile添加系统环境变量:
export WORKON_HOME=~/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.10 source /Library/Frameworks/Python.framework/Versions/3.10/bin/virtualenvwrapper.sh问题1:为什么要添加环境变量WORKON_HOME?
""" virtualwrapper会将虚拟环境目录创建在环境变量WORKON_HOME指定的目录中。将所有的虚拟环境都放在同一目录中,方便管理 """问题2:为什么要添加环境变量VIRTUALENVWRAPPER_PYTHON?
""" 为了确保virtualenvwrapper使用我们想要的Python解释器,我们需要通过设置VIRTUALENVWRAPPER_PYTHON环境变量来指定Python解释器的路径。这样可以避免使用错误的Python解释器,从而保证虚拟环境的正常工作。 当然我们在创建虚拟环境时也可手动指定要用哪个版本的python解释器(mkvirtualenv -p python版本(可以是加载哪个版本的python别名) 虚拟环境名称) """问题3:为什么要激活virtualenvwrapper.sh?
""" 首先回答什么是.sh文件,它是一种脚本文件,包含一系列命令,可以让操作系统执行。 显然virtualenvwrapper.sh包含了管理python虚拟环境的命令,如workon,mkvirtualenv等,所以我们要source激活,以便能够使用这些命令进行管理 注意点: (1)当我重启shell终端后,workon,mkvirtualenv命令不能使用,系统无法找到此命令。因为重启后是一个新的shell进程,与上一个shell进程所做的事情无关,我们每次得手动激活,所以我们要在配置环境变量的文件中,实现永久激活。 (2)下载virtualwrapper工具包会在python的每个版本中自动创建virtualenvwrapper.sh的脚本文件 """mkvirtualenv执行原理:
""" 当执行mkvirtualenv指令时,virtualenvwrapper会做如下几件事情: 1.创建一个新的目录,用来存放新的虚拟环境(WORKON_HOME环境变量指定的目录下);
2.调用virtualenv创建一个新的Python环境(virtualenv会复制原始环境来创建新的环境,所以为了识别加载到这个原始环境,需要设置python环境变量,否则加载不到就会报错),这个环境会被放置在上述目录中;
3.启动一个新的shell,并将Python环境添加到该shell的环境变量中,使得该shell默认使用该虚拟环境。 """
二、创建虚拟环境过程中报错
1.重启终端后-bash: mkvirtualenv: command not found
'"" 原因:没有激活virtualenvwrapper.sh,可添加到环境变量的文件中设置永久激活 """2.mkvirtualenv创建虚拟环境时ERROR: virtualenvwrapper could not find virtualenv in your path
""" 原因:没有添加python环境变量,导致virtualenv在复制原有环境创建新的环境时,找不到原有环境的路径 """ ~/.bash_profile: PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}" export PATH
三、实践(创建虚拟环境)
1、下载两个流行工具包
pip3 install virtualenv pip3 install virtualenvwrapper # 额外知识:命令行输入pip3下载时,通过PATH环境变量查找pip3可执行文件,在有同名命令时,找到的第一个执行。若系统中既有python3.6又有python3.10版本,哪个版本在前就使用哪个版本的pip3,当然我们可以使用别名alias区分
2、配置环境变量.bash_profile(macos)
# Setting PATH for Python 3.6 # The original version is saved in .bash_profile.pysave PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}" export PATH # Setting PATH for Python 3.10 # The original version is saved in .bash_profile.pysave PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}" export PATH # 存储所有虚拟环境目录 export WORKON_HOME=~/.virtualenvs # 指定用哪个python解释器 export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.10 # 永久激活管理命令 source /Library/Frameworks/Python.framework/Versions/3.10/bin/virtualenvwrapper.sh alias python3="/usr/local/bin/python3.10" alias python36="/usr/local/bin/python3.6" alias ll="ls -l"
3.即可使用
标签:virtualenv,bin,Python,virtualenvwrapper,虚拟环境,PATH,环境变量 From: https://www.cnblogs.com/hechengQAQ/p/17287368.html