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

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

时间:2023-03-26 01:08:39 Python

1。概述本文介绍使用Pyenv+Pipenv管理Python项目开发的本地虚拟环境。pyenv:安装和管理多个Python版本。pipenv:为每个项目创建单独的虚拟环境。以下所有操作均在Ubuntu16.04系统上进行。2.Python版本管理:pyenv2.1。安装pyenv$curlhttps://pyenv.run|bashpyenv相关内容会安装在~/.pyenv/目录下。安装完成后,在~/.bashrc:exportPATH="~/.pyenv/bin:$PATH"eval"$(pyenvinit-)"eval"$(pyenvvirtualenv-init-)"中添加以下内容升级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版本:查看当前安装的python版本:$pyenvversions*system(setby/home/hy/.pyenv/version)3.8.2所有通过pyenv安装的Python版本都存放在~/.pyenv/版本/目录。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.虚拟环境管理:pipenv3.1。安装pipenv以确保安装了最新的3.x版本的python和pip$python-VPython3.8.2$pip-Vpip19.2.3from/home/hy/.pyenv/versions/3.8.2/lib/python3.8/site-packages/pip(python3.8)安装:$pipinstallpipenv升级:$pipinstall--upgradepipenv3。2.为每个项目创建独立的虚拟环境创建项目目录:$mkdirdjango_test&&cddjango_test添加exportPIPENV_VENV_IN_PROJECT=1到~/.bashrc。为使配置生效,执行source~/.bashrc,然后pipenvmanagement将所有虚拟环境安装到项目根目录下的.venv目录下。创建虚拟环境:$pipenv--python3.8Creatingavirtualenvforthisproject…Pipfile:/home/hy/workspace/temp/django_test/PipfileUsing/home/hy/.pyenv/versions/3.8.2/bin/python(3.8.2)创建virtualenv…?创建虚拟环境…创建虚拟环境CPython3.8.2.final.0-64in178mscreatorCPython3Posix(dest=/home/hy/workspace/temp/django_test/.venv,clear=False,global=False)seederFromAppData(download=False,pip=latest,setuptools=latest,wheel=latest,via=copy,app_data_dir=/home/hy/.local/share/virtualenv/seed-app-data/v1)激活器BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator?成功创建虚拟环境!Virtualenvlocation:/home/hy/workspace/temp/django_test/.venvCreatingaPipfileforthisproject…$ls-latotal16drwxrwxr-x3hyhy40963月1112:15.drwxrwxr-x42hyhy40963月1013:02..-rw-rw-r--1hyhy1383月1112:15Pipfiledrwxrwxr-x4hyhy40963月1112:15.venvpypi源码的URL保存在自动生成的Pipfile生成中:[[source]]name="pypi"url="https://pypi.org/simple"verify_ssl=true[dev-packages][packages][requires]python_version="3.8"可以设置源码地址为国内镜像地址,提高下载速度:[[source]]name="pypi"url="https://pypi.tuna.tsinghua.edu.cn/simple"verify_ssl=true[dev-packages][packages][requires]python_version="3.8"安装依赖包:$pipenvinstall"django==2.1"Installingdjango==2.1...Addingdjango到Pipfile的[packages]…?安装成功Pipfile.locknotfound,creating…Locking[dev-packages]dependencies…Locking[packages]dependencies…?Success!已更新Pipfile.lock(a5a621)!正在从Pipfile.lock(a5a621)安装依赖项…▉▉▉▉▉▉▉▉▉▉2/2—00:00:01要激活此项目的virtualenv,请运行pipenvshell。或者,在virtualenv中运行一个命令,运行pipenv。测试环境安装依赖包:$pipenvinstallpytest--dev显示安装的依赖包关系:$pipenvgraphDjango==2.1-pytz[required:Any,installed:2019.3]pytest==5.3.5-attrs[需要:>=17.4.0,已安装:19.3.0]-more-itertools[需要:>=4.0.0,已安装:8.2.0]-包装[需要:任何,已安装:20.3]-pyparsing[要求:>=2.0.2,已安装:2.4.6]-六个[要求:任何,已安装:1.14.0]-pluggy[要求:>=0.12,<1.0,已安装:0.13.1]-py[required:>=1.5.0,installed:1.8.1]-wcwidth[required:Any,installed:0.1.8]删除依赖包:$pipenvuninstalldjangoUninstallingdjango...发现现有安装:Django2.1UninstallingDjango-2.1:成功卸载Django-2.1从Pipfile中删除django…锁定[dev-packages]依赖项…锁定[packages]依赖项…更新Pipfile.lock(91e3b9)!进入虚拟环境:$pipenvshell4。项目管理$ls-latotal20drwxrwxr-x3hyhy4096Mar1112:31.drwxrwxr-x42hyhy4096Mar1013:02..-rw-rw-r--1hyhy185Mar1112:31Pipfile-rw-r--r--1hyhy3666Mar1112:31Pipfile.lockdrwxrwxr-x5hyhy4096Mar1112:21.venv将自动生成的Pipfile和Pipfile.lock文件加入版本控制系统,.venv目录不加入版本控制系统。团队成员安装pyenv和pipenv,在~/.bashrc配置相应的环境变量,clone项目源码,运行pipenvinstall--dev重建虚拟开发环境。$cddjango_test$pipenvinstall--devresourcesUbuntu下安装pyenv实现Python多版本共存