当前位置: 首页 > 科技观察

Ubuntu20.04搭建你的Python项目环境的正确姿势

时间:2023-03-18 23:24:21 科技观察

今天,我们将学习在Ubuntu20.04下为你的Python项目搭建环境的众多方法之一。原因我最近参加了一项技术测试,作为PythonJr开发工作选择过程的一部分。测试附带问题描述、预期解决方案、部署指南和初始框架。在那个框架中有一个Pipfile,它安装了一些库并定义了框架的Python版本。问题来了:Ubuntu20.04中的Python版本是3.8,项目需要3.9版本,我想:好吧,那我们安装Python3.9吧!但这并不是那么简单......我遇到了以下问题:安装新版本并没有使其成为系统默认版本之后,pip,pipenv没有正确配置我想要的Python版本。现在,我将向您展示我的详细分步解决方案。安装新的Python版本为了安装Python3.9版,我最终使用了存储库而不是编译源代码。添加存储库:linuxmi@linuxmi:~/www.linuxmi.com$sudoadd-apt-repositoryppa:deadsnakes/ppa更新包列表:linuxmi@linuxmi:~/www.linuxmi.com$sudoaptupdate安装包:linuxmi@linuxmi:~/www.linuxmi.com$sudoaptinstallpython3.9可选(实际上,我建议你这样做),你可以将Python3.9添加到你的系统PATH:linuxmi@linuxmi:~/www.linuxmi.com$sudonano/etc/profile.d/python.sh并添加:PATH=/opt/python/3.9/bin/:$PATH这将允许用户在终端中运行pip命令以在主目录中安装包。将新版本设置为默认版本检查不同版本Python的替代品:linuxmi@linuxmi:~/www.linuxmi.com$sudoupdate-alternatives--listpython如果不存在,将显示以下消息:update-alternatives:error:nopythonalternatives然后执行:linuxmi@linuxmi:~/www.linuxmi.com$sudoupdate-alternatives--install/usr/bin/python3.81输出:update-alternatives:using/usr/bin/python3.8以自动模式提供/usr/bin/python(python)linuxmi@linuxmi:~/www.linuxmi.com$sudoupdate-alternatives--install/usr/bin/pythonpython/usr/bin/python3。92输出:update-alternatives:Use/usr/bin/python3.9toserve/usr/bin/python(python)inautomaticmode运行命令后:linuxmi@linuxmi:~/www.linuxmi.com$sudoupdate-alternatives--configpython然后您将看到以下输出:有2个替代方案可用于替换python(提供/usr/bin/python)。选择路径优先级状态-----------------------------------------------------------*0/usr/bin/python3.92自动模式1/usr/bin/python3.81手动模式2/usr/bin/python3.92手动模式wantTo保持当前值[*]按,或键入选择的数字:在上面的示例中,我最终选择了数字2,因为它是我希望从现在起成为默认值的Python版本。完成后查看Python版本linuxmi@linuxmi:~/www.linuxmi.com$python--versionOutput:Python3.9.7至此,我们已经正确安装了需要的Python版本,并且是默认版本系统。pip和pipenv的问题安装pip和pipenv最终会转到Python3.8路径,即使您将另一个版本的Python设置为默认值。所以为了安装指向Python3.9的pip,我最终正常安装了pip,然后如下更新pip:linuxmi@linuxmi:~/www.linuxmi.com$curlhttps://bootstrap.pypa.io/get-pip.py-oget-piy.py然后运行:linuxmi@linuxmi:~/www.linuxmi.com$python3.9get-pip.py输出如下:Defaultingtouserinstallationbecausenormalsite-packagesisnotwriteableCollectingpipDownloadingpip-21.2.4-py3-none-any.whl(1.6MB)|█████████████████████████████████|1.6MB5.0kB/s正在安装收集的包:pipSuccessfullyinstalledpip-21.2.4ifany权限问题,您可以使用sudo或--user标志运行命令:linuxmi@linuxmi:~/www.linuxmi.com$sudopython3.9get-pip.pylinuxmi@linuxmi:~/www.linuxmi.com$python3。9get-pip在.py--user之后,确保pip绑定到Python3.9版本:linuxmi@linuxmi:~/www.linuxmi.com$pip--version预期输出应该是这样的:pip21.2.4from/home/linuxmi/.local/lib/python3.9/site-packages/pip(python3.9)正如我之前提到的,我需要安装Pipfile依赖项,所以我需要pipenv。我在这里运行pipinstallpipenv,pipenv还没有链接到旧版本。如果发生这种情况,请运行:linuxmi@linuxmi:~/www.linuxmi.com$sudopiinstallpipenv,该软件包将安装在3.9版本中。总结如果您已经做到这一点并解决了问题,恭喜您!信用不属于我,而属于您找到解决方案!如果没有,请告诉我们问题出在哪里,以便我们为您提供帮助。谢谢阅读。更多信息和教程请关注Linux爱好者(www.linuxmi.com)。