当前位置: 首页 > 后端技术 > Python

Ubuntu系统上Python项目开发本地虚拟环境管理方案:pyenv+virtualenv

时间:2023-03-25 22:13:30 Python

1.概述由于使用pipenv安装相关包非常慢,尤其是Lock操作,不推荐使用。本文介绍使用Pyenv+virtualenv管理Python项目开发的本地虚拟环境。pyenv:安装和管理多个Python版本。virtualenv:为每个项目创建单独的虚拟环境。以下所有操作均在Ubuntu16.04系统上进行。2.Python版本管理:pyenv2.1。安装pyenv$curlhttps://pyenv.run|bashpyenv相关内容会安装在~/.pyenv/目录下。安装完成后,在~/.bashrc:exportPYENV_ROOT="$HOME/.pyenv"exportPATH="~/.pyenv/bin:$PATH"eval"$(pyenvinit-)"中添加以下内容,升级pyenv:$pyenvupdatedeletepyenv:$rm-rf~/.pyenv并删除~/.bashrc中的相关环境变量。2.2.安装管理多个Python查看可安装版本:$pyenvinstall--list安装指定版本:$pyenvinstall3.8.2在安装python之前,必须先安装编译python所需的依赖:$sudoapt-getinstall-ymakebuild-essentiallibssl-devzlib1g-devlibbz2-dev\libreadline-devlibsqlite3-devwgetcurlllvmlibncurses5-devlibncursesw5-dev\xz-utilstk-devlibffi-devliblzma-devpython-opensslgit查看常见构建问题,否则在编译后导入一些python库时会出现ModuleNotFoundError:Nomodulenamed'_sqlite3'等问题。查看当前安装的python版本:$pyenvversions*system(setby/home/hy/.pyenv/version)3.8.2所有通过pyenv安装的Python版本都存放在~/.pyenv/versions/目录下。2.3.可以指定每个目录执行特定的Python版本。指定前,系统默认Python为2.7:$mkdirtest$cdtest$pythonPython2.7.12(default,Oct82019,14:14:10)[GCC5.4.020160609]onlinux2Type"help","copyright","credits"or"license"更多信息>>>通过pyenvlocal命令指定,在该目录下执行python时,要执行的python版本:$pyenvlocal3.8.2$ls-latotal12drwxrwxr-x2hyhy4096Mar1016:04.drwxrwxr-x42hyhy4096Mar1013:02..-rw-rw-r--1hy63Month1016:03.python-version$cat.python-version3.8.2local该命令会在当前目录下生成一个包含版本号的隐藏文件.python-version。验证执行的python版本:$pythonPython3.8.2(default,Mar102020,13:47:49)[GCC5.4.020160609]onlinuxType"help","copyright","credits"or"license"formore信息。>>>2.4。切换全局Python版本$pyenvglobal3.8.2$pythonPython3.8.2(default,Mar102020,13:47:49)[GCC5.4.020160609]onlinuxType"help","copyright","credits"or"许可证”以获得更多信息。>>>3.虚拟环境管理:pyenv-virtualenv3.1。安装pyenv-virtualenv$gitclonehttps://github.com/pyenv/pyenv-virtualenv.git~/.pyenv/plugins/pyenv-virtualenv$echo'eval"$(pyenvvirtualenv-init-)"'>>~/.bashrc$来源~/.bashrc3.2。创建一个独立的虚拟环境创建一个项目目录:$pyenvvirtualenv3.8.2py38该命令为python3.8.2创建一个名为py38的虚拟环境,并保存在~/.pyenv/versions/下:$pyenvversionssystem*3.8.23.8.2/envs/py38py38switch并使用python虚拟环境:$pyenvactivatepy38$pipinstalldjango$pyenvdeactivateremovevirtualenvironment:$pyenvuninstallpy38#or#$rm-rf~/.pyenv/versions/py38/设置切换虚拟环境命令的别名:$echo'workon="pyenvactivate"'>>~/.bashrc$~/.bashrc$py38.bashrc中的相关设置作用于:#pyenv&virtualenvexportPYENV_ROOT="$HOME/.pyenv"exportPATH="$HOME/.pyenv/bin:$PATH"eval"$(pyenvinit-)"eval"$(pyenvvirtualenv-init-)"aliasworkon='pyenvactivate'4.Mac上的设置和Ubuntu上类似,但是相关设置保存在~/.~/.bash_profile中,不要放在~/.bashrc中ResourcesUbuntu下安装pyenv实现Python多版本共存pyenv官网pyenv常见构建问题python实现多版本环境pyenv,virtualenv,virtualenvwrapper