优化Python开发环境的技巧有哪些_惠州计算机Python培训学校
作者:黄君发布时间:2021-05-26分类:惠州计算机学校浏览:839
然而,数据科学家特别容易使自己的Jupyter notebook变得庞大而杂乱,或者写出一些难以理解的python文件。
此外,当一个项目依赖于同一函数库的不同版本时,常常发生版本冲突。
修复以上问题消耗大量时间,还经常导致其他项目出现问题。必须找到避免这类问题的解决方式,为编写代码提供便利。
在本篇文章中我将详细介绍常用的工具与技巧,希望能给大家提供帮助。
Python开发环境
解释器:
从使用Python最重要的解释器开始。你可以只下载最喜欢的Python版本,然后把所有内容放在里面。
但如果你的程序需要不同版本的Python,或依赖于同一第三方模块的不同版本,并需要在几个程序之间无缝切换时该怎么办?
Pyenv可以解决上述问题。
Pyenv共包含三个工具,下面将介绍其中两个:pyenv(用于安装python)和pyenv-virtualenv(用于配置全局工具)。
可通过下方网址安装pyenv:
curl https://pyenv.run | bash
安装后,向.bashrc(或.zshrc)文件中添加下方代码,使得pyenv可用于设备。
exportPATH="~/.pyenv/bin:$PATH"eval "$(pyenv init -)"eval "$(pyenv virtualenv-init -)"
最后,重启设备。
现在可以使用pyenv安装几乎所有的python解释器,包括pypy、anaconda。
需要注意的是,pyenv只在电脑上搭建本地python环境。搭建python环境需要多种函数库。
在Ubuntu系统的电脑上,必须安装以下函数库以防止运行出现问题。
sudo
apt-get installbuild-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev
zlib1g-dev libssl-dev openssllibgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-devlibffi-dev uuid-dev
现在,要安装python解释器只需要执行以下指令。
pyenv installVERSION_YOU_WOULD_LIKE_TO_INSTALL
可以通过pyenv列出所有可用版本。
pyenv install --list
为了使上述过程更加具体,在此安装python3.7.5并且设置其为默认的全局解释器。
pyenv install 3.7.5pyenv global 3.7.5
输入Python-version指令,屏幕将显示Python3.7.5。
依赖性关系管理(DependencyManagement)
Python中的依赖性管理是项繁重的工作。有许多工具可以帮助完成这项任务。
我最常使用的工具是Poetry。
Poetry可以帮助你简单地完成如下工作。
管理项目依赖关系
通过虚拟环境将项目分开
轻松构建应用程序与函数库
推荐通过以下方式安装poetry:
curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
另外一种依赖性管理的方式是使用pip和pyenv-virtualenv指令。
大家可能会问:为什么不只用pip?
因为只用pip可能会在全局环境中安装poetry及其依赖项,这可能是你不需要也不想要的。
必要指令如下:
# Create a virtual environmentcalled tools that is based on 3.7.5pyenv virtualenv 3.7.5 tools# Install poetry into the tools virtual envpyenv activate toolspip install poetry# Check installed poetry versionpoetry --version# Leave the virtual envpyenv deactivate# This does not work yetpoetry --version# Add your tools virtual env to the globally available onespyenv global 3.7.5 tools# Now this works and you can start using poetrypoetry --version
在使用poetry创建第一个项目之前,建议先对其进行配置,这样就可以在项目目录中的.venv文件夹中创建虚拟环境。
当你使用VsCode或Pycharm这类集成开发环境时就会变得非常方便,因为它们可以立即识别并选择正确的解释器。
poetry configsettings.virtualenvs.in-project true
注意:你只需设置一次配置,设置结果将在全局环境保留。
终于完成了使用poetry创建项目的所有准备工作,我把这个项目命名为dsexample,为了展示如何使用poetry,我添加了一个特定版本的pandas库,以及所有额外需求的fastapi框架。
# Initialze a new projectpoetry new dsexamplecd dsexample# Add modules and create virtual environment.poetry add pandas=0.25 fastapi --extras all# As an example of how you could add a git modulepoetry add tf2-utils --git git@github.com:Shawe82/tf2-utils.git
格式一致性与可读性(Consistent Formatting and Readability)
现在,已经创建好了项目,即将开始添加代码。理想情况下,代码库的格式应该一致,以确保可读性和可理解性。这将是一个非常沉闷乏味的过程,尤其在还有其他人操作代码库时。
但用Black可以解决上述问题!
Black是一种让程序员在编写python代码时能将精力集中于核心内容的工具。它自动为代码添加格式,避免程序员手动添加格式。
因为Black的效果非常好,我们把它添加到dsexample中,让它为所有的文件添加格式。
# We add black as a developmentdependency with --dev as we don't# need it when it comes to productionpoetry add --dev black=19.3b0# Assume we are inside the current toplevel dsexample folderpoetry run black .
好了,现在所有的文件看起来非常整齐了。
类型纠正(Type-Correctness)
自Python3.5开始,类型注释开始成为标准库的一部分通过类型注释,代码更好理解,更易维护,不易出错。
为什么会不易出错呢?因为可以静态地检查变量和函数的类型是否符合预期。当然,必须是自动完成的。
下面介绍mypy!
Mypy是一种静态python代码检查器,作用是在错误发生之前找到他们。使用poetry向项目中添加mypy并进行代码检查与添加black一样简单。
# We add mypy as a developmentdependency with --dev as we don't# need it when it comes to productionpoetry add --dev mypy# Assume we are inside the current toplevel dsexample folderpoetry run mypy .
运行mypy也可能导致很多麻烦。当然,可以将其设置为只对你关心的错误发出警告。这可以通过在项目中添加mypy.ini文件实现。
将自动化工具自动化(Automate the Automation)
使用black和mypy,我们不再需要手工为代码添加格式,并且可以避免不必要的错误。
但是我们仍需要手动使用这两个工具,这两个工具不是应该也自动化吗?
是的!
Pre-commit可以完成一切。
Pre-commit工具是在代码提交到仓库前执行检查(我默认读者的代码处在git的控制下)。无法通过检查的代码将被拒绝。
这样代码仓库就永远不会出现格式不整齐或是未经类型检查的代码,以及任何其他你需要检查错误的代码。
现在来安装pre-commit。
可以使用poetry将其直接安装在项目里,也可以安装在本地机器里。我倾向于后者,因为precommit只在本地使用,而不在CI/CD服务器上。
相反,black和mypy在CI/CD服务器上运行,因此,将它们添加到项目的dev依赖项是有意义的。
建议使用下面方法通过现有的工具虚拟环境安装它!
# Install pre-commit into the tools virtual envpyenv activate toolspip install pre-commit# Leave the virtual envpyenv deactivate# As we have already added the tool venv, it will work directlypre-commit --version
要使用pre-commit,首先需要向顶级文件夹中添加一个名为.pre-commit-config.yarm的文件。在该文件里,你需要配置所有应该运行的钩子。
在mypy与Black的环境下,文件内容如下所示:
repos:- repo: https://github.com/ambv/black rev: 19.3b0 hooks: - id: black language_version: python3.7- repo: https://github.com/pre-commit/mirrors-mypy rev: v0.740 hooks: - id: mypy
最后,你必须执行以下命令以设置钩子。
# I assume your are in the toplevel folderpre-commit install
现在,钩子函数(hook)将在每次提交时运行。Black工具的钩子函数不仅会检查格式,还会相应地为文件添加格式。
每次添加新的钩子函数时,建议一开始在所有文件中手动运行pre-commit,因为它只能作用于上次提交之后更改过的文件。
pre-commit run --all-files
就这样,对自动化工具的自动化完成了。
点击咨询直接了解更多相关资料,我在惠州北大青鸟新方舟等你。
本文内容转载自网络,版权归原作者所有,如有侵权请联系我们进行删除。
标签:惠州计算机软件培训惠州计算件软件开发惠州计算机软件基础惠州计算机Python软件开发惠州Python培训学校惠州Python培训python基础教程python是什么python教程python入门
- 惠州计算机学校排行
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训