网站搭建规划模板,wordpress博客点赞,wordpress报名收费,网站假设公司排名用Python编代码体验极佳#xff0c;并且随着新版本的发布越来越好#xff01;
对于很多人而言#xff0c;Python提供的大量免费函数库、高可读性的程序和新引入的类型注释让很多爱不释手。
然而#xff0c;数据科学家特别容易使自己的Jupyter notebook变得庞大而杂乱并且随着新版本的发布越来越好
对于很多人而言Python提供的大量免费函数库、高可读性的程序和新引入的类型注释让很多爱不释手。
然而数据科学家特别容易使自己的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:$PATHeval $(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.5 pyenv 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.5
pyenv virtualenv 3.7.5 tools# Install poetry into the tools virtual env
pyenv activate tools
pip install poetry# Check installed poetry version
poetry --version# Leave the virtual env
pyenv deactivate# This does not work yet
poetry --version# Add your tools virtual env to the globally available ones
pyenv global 3.7.5 tools# Now this works and you can start using poetry
poetry --version在使用poetry创建第一个项目之前建议先对其进行配置这样就可以在项目目录中的.venv文件夹中创建虚拟环境。
当你使用VsCode或Pycharm这类集成开发环境时就会变得非常方便因为它们可以立即识别并选择正确的解释器。
poetry configsettings.virtualenvs.in-project true 注意你只需设置一次配置设置结果将在全局环境保留。
终于完成了使用poetry创建项目的所有准备工作我把这个项目命名为dsexample为了展示如何使用poetry我添加了一个特定版本的pandas库以及所有额外需求的fastapi框架。
# Initialze a new project
poetry new dsexample
cd dsexample# Add modules and create virtual environment.
poetry add pandas0.25 fastapi --extras all# As an example of how you could add a git module
poetry add tf2-utils --git gitgithub.com:Shawe82/tf2-utils.git格式一致性与可读性Consistent Formatting and Readability
现在已经创建好了项目即将开始添加代码。理想情况下代码库的格式应该一致以确保可读性和可理解性。这将是一个非常沉闷乏味的过程尤其在还有其他人操作代码库时。
但用Black可以解决上述问题
Black是一种让程序员在编写python代码时能将精力集中于核心内容的工具。它自动为代码添加格式避免程序员手动添加格式。
因为Black的效果非常好我们把它添加到dsexample中让它为所有的文件添加格式。
# We add black as a developmentdependency with --dev as we dont
# need it when it comes to production
poetry add --dev black19.3b0# Assume we are inside the current toplevel dsexample folder
poetry run black .好了现在所有的文件看起来非常整齐了。
类型纠正Type-Correctness
自Python3.5开始类型注释开始成为标准库的一部分通过类型注释代码更好理解更易维护不易出错。
为什么会不易出错呢因为可以静态地检查变量和函数的类型是否符合预期。当然必须是自动完成的。
下面介绍mypy
Mypy是一种静态python代码检查器作用是在错误发生之前找到他们。使用poetry向项目中添加mypy并进行代码检查与添加black一样简单。
# mypy as a developmentdependency with --dev as we dont
# need it when it comes to production
poetry add --dev mypy# Assume we are inside the current toplevel dsexample folder
poetry 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 env
pyenv activate tools
pip install pre-commit# Leave the virtual env
pyenv deactivate# As we have already added the tool venv, it will work directly
pre-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 folder
pre-commit install现在钩子函数hook将在每次提交时运行。Black工具的钩子函数不仅会检查格式还会相应地为文件添加格式。
每次添加新的钩子函数时建议一开始在所有文件中手动运行pre-commit因为它只能作用于上次提交之后更改过的文件。
pre-commit run --all-files 就这样对自动化工具的自动化完成了。
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料给那些想学习 Python 的小伙伴们一点帮助
包括Python激活码安装包、Python web开发Python爬虫Python数据分析人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python
Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理形成各个领域的知识点汇总它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。全套教程文末领取 Python学习视频600合集
观看零基础学习视频看视频学习是最快捷也是最有效果的方式跟着视频中老师的思路从基础到深入还是很容易入门的。 温馨提示篇幅有限已打包文件夹获取方式在文末
Python70个实战练手案例源码
光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。 Python大厂面试资料
我们学习Python必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有阿里大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。 Python副业兼职路线方法
学好 Python 不论是就业还是做副业赚钱都不错但要学会兼职接单还是要有一个学习规划。 这份完整版的Python全套学习资料已经上传朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】
点击免费领取《CSDN大礼包》Python入门到进阶资料 实战源码 兼职接单方法 安全链接免费领取