Python3 - 开始python编程(十七)

Python3 - 开始python编程(十七)

上一章中,我们介绍了测试。希望您会使用所学知识来确保代码安全无误。在本文中,我们将讨论优化您的工作流程。您已经知道自己开始所需的一切,但是如果您在寻找有关设置开发环境以使工作流程更舒适的提示和技巧,请坚持学习。

一位朋友和同事帮助我开始开发专业的 Python 程序;我将这些提示归功于他是公平的。谢谢Shawn

作为免责声明,这只是对我有用的工作流程。如果发现它太困难或太有限,则将其更改为适合您的方法。

我最近为此专门格式化了笔记本电脑,并会尽力在 macOS,Windows 和 Linux 之间进行翻译。我希望这些说明不会有太大变化,因此请更改版本号以适合您的系统。

在继续前进之前,请注意:无论在哪个系统上进行开发,都应始终下载可用于生产系统的最高版本的 Python。

这意味着,如果您要在三个系统中部署代码,则应使用这三个系统之间最低的 Python 版本。例如,CentOS 7 仅使用 Python 3. 6.5,而 Fedora 使用 3. 7.4,因此您应该下载 Python 3. 6.5。

如果您想免费下载仅适用于 Fedora 的应用程序的 3. 7.4,则将获得 3. 7 中引入的功能,这些功能在早期版本中不可用。


macOS 和 Linux

macOS 的先决条件

首先,我们需要安装开发人员命令行工具。如果您已安装 Xcode 并至少运行过一次,则说明它们已经安装。如果没有,请打开一个终端窗口(/ Applications / Utilities / Terminal.app)并键入以下命令:

1
xcode-select --install

这将导致出现一个对话框,询问您是否要下载和安装命令行工具。继续,等待安装完成。

接下来,我们需要安装 macOS SDK。当您安装命令行工具时,这些工具已下载但未安装。要运行安装,请使用以下命令:

1
2
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

这将安装所需的依赖关系以构建 Python 解释器。

接下来,我们需要安装 Homebrew。 Homebrew 是适用于 macOS 的软件包管理器,类似于 Windows 上的Chocolatey或 Linux 上的 Apt / Yum。我们可以使用Homebrew 网站上的命令来执行此操作:

1
2
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

这应该以非特权用户身份运行。在安装过程中它将要求您输入密码。

安装完成后,我们可以安装pyenv。 pyenv 允许我们以不相互冲突或与系统冲突的方式安装多个版本的 Python。我们还可以选择要用于我们的用户帐户的 Python 版本,而不影响系统 Python 版本。我们将使用 Homebrew 来安装它:

1
brew install pyenv

Homebrew 将自动提取任何依赖项,例如 OpenSSL 或 Readlines,并同时安装它们。如果一切顺利,您将看到一些成功消息。有时,我们会收到有用的文字,说明下一步需要做什么。在这种情况下,我们需要将pyenv添加到我们的 bash 配置文件中,以便下次启动终端时可以使用它:

1
2
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

如果您以前从未看过 bash 脚本,这对您来说可能看起来很复杂。本质上,这会检查是否安装了 pyenv,如果已安装,我们将调用命令eval $(pyenv init-)`. I 如果它不存在,请跳过此命令。

现在已经安装了pyenv,我们需要重新启动外壳程序,继续并关闭此终端会话并打开一个新会话。

Linux 的先决条件

使用yum(RHEL / CentOS 7)根据需要为pyenv安装以下必备软件包:

1
2
3
4
5
6
# EPEL only available for RHEL 7 right now
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -ivh epel-release-latest-7.noarch.rpm

sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel

使用 apt-get(Ubuntu / Debian):

1
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

Python

现在,我们可以安装所需的任何 Python 版本。当我们第一次开始这个系列时,我们是在 3.7.3 上。现在我们在 3.7.4。

运行以下命令以安装 Python 3.7.4:

1
pyenv install 3.7.4

如果一切顺利,您将看到一条成功消息。

由于未安装 Xcode(macOS 系统),因此出现以下错误:

1
ModuleNotFoundError: No module named 'pyexpat'

由于我不希望一个 11 GB 的程序只坐在那里什么也不做,因此我需要找到一种解决方法:

1
2
3
4
5
rew install xz

echo -e 'export SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk MACOSX_DEPLOYMENT_TARGET=10.14' >> ~/.bash_profile

pyenv install 3.7.4

首先,我使用 brew 安装了 xz,然后将 SDKROOT 设置为命令行工具 SDK,并将部署目标设置为当前的 macOS 版本(10.14)。我将其放在 bash 个人资料中,因此不必每次都键入此内容。如果遇到任何问题,请在命令前使用#注释掉”export…”行,并创建一个新的终端会话。 (您也可以使用unset SDKROOT对此会话执行相同的操作。)

成功安装 Python 后,请使用以下命令来设置您的 Python 版本并对其进行测试:

1
2
3
4
yenv local 3.7.4

python --version
# (Python 3.7.4)

如果要安装其他版本,可以使用pyenv install -l列出所有可用版本。请注意,有很多,但是您最感兴趣的将是包含 3. x.x 的版本。

pip 软件包

安装并设置了您选择的 Python 版本后,我们可以安装一些pip软件包来帮助我们的工作流程。这是我喜欢的一些:

  • pipx-将 pip 软件包安装到自己的虚拟环境中,然后链接到您的用户路径。
  • black-Python 代码格式化程序。
  • httpie-超级简单的 Python HTTP 客户端。

首先,我们将默认的pipsetuptools升级到最新版本,并在安装时安装pipx

1
python -m pip install --upgrade pip setuptools pipx

“Pipx”目前不允许一次安装多个软件包,因此我们将使用以下命令安装”black”和”httpie”:

1
2
pipx install black
pipx install httpie

您可能会收到一些在路径中未找到的关于〜/ .local / bin 的警告。只需使用以下命令即可解决此问题:

1
serpath append ~/.local/bin

最后,我在主文件夹中创建一个名为”Developer”的目录。这为文件夹提供了带有开发工具图像的水印(仅适用于 macOS)。它使以后查找变得容易。我所有的项目都住在这里。

由于我使用 Jetbrains 产品,因此通常将生成的项目文件夹名称保持不变,因此我可以轻松找到由 IDE 创建的所有项目(例如,~/Developer/PycharmProjects/testapp)。

这就是我们要做的。除非另有说明,否则用于 Python 开发的任何应用程序都将使用通过pyenv安装的 Python 版本。在本文即将结束时,我列出了我使用的软件。在此之下,我提供了一系列教程,可帮助您开始使用网络框架。

Windows 系统

这基于我在工作 PC 上的开发工作流程。

在 Windows 上,我不使用pyenvpipx。我的工作流程非常简单。

我将所有项目存储在 C:\Dev 中,然后创建快速访问此位置的快捷方式。

我直接从python.org将需要的所有 Python 版本安装到C:\Python\中,其中对于 32 位 Python 3.6,该文件夹名为363x86。 .3。这样,我知道我将在虚拟环境中使用哪个版本的 Python 和体系结构。

使用此工具,我可以轻松地在C:\Dev中创建新文件夹,并调用C:\Python\372x64\Python -m venv C:\Dev\myproject\venv为我的应用程序创建新的虚拟环境。

如果我要将代码部署到 Linux,则需要在 PyCharm 中设置一个远程解释器,以自动将我的代码副本上传到该服务器。这样,我可以直接在 Linux 环境中调用代码。

如果我仅针对特定版本的 Python 编写代码,则将系统环境中的用户路径设置为包含我最常使用的 Python 版本的目录。


软件

编者

我使用多个编辑器,不是因为我喜欢复杂的生活,而是因为我使用了不同的编辑器。我将简要介绍它们的优点和缺点,并按实用性排序。

PyCharm:JetBrains 为专业开发人员提供的 Python IDE

Pycharm 确实是让我着迷于 Python 的工具。它提供了许多工具来扩展您的工作流程。我最喜欢的工具是远程 ssh 解释器,内置 git 和自动补全功能,这是我使用过的其他 Python IDE 所无法比拟的。它还有一个强大的插件市场,可以帮助进一步扩展 IDE。它还具有对其他语言的内置支持,包括 HTML 编辑功能,该功能比某些用于创建 HTML 的编辑器要好。

唯一不好的是,专业版的价格为每年 200 美元;这很容易被社区版本抵消,该社区版本删除了一些功能。除非您进行认真的 Django,Flask 或远程开发,否则您不会错过任何东西。它还具有一个 Edu 版本,其中包含内置的 Python 教程。

Visual Studio code

微软对 Python 社区表示了支持。通过扩展可使用其 Python Server,自动完成功能非常有用。它也是一个熟悉的编辑器(几乎是完整的 IDE),非常适合快速编辑或难以同时打开两个 PyCharm 实例的机器。哦,它是免费的,而且可扩展。

我对此的唯一抱怨是,它在 Electron 上运行,在编辑大文件时可能很慢。

Sublime Text(Sublime 文本)—用于代码,标记和散文的高级文本编辑器

Sublime Text 对于编辑大文件而言非常惊人。尽管它没有 VS Code 或 PyCharm 扩展名,但它可以以多快的速度处理兆字节的文件。不要让图像愚弄您,它与其他两个编辑器一样,可在 macOS,Windows 和 Linux 上使用。我使用 Sublime Text 进行超级快速编辑或查看大型结果集。您可以永久地对此进行评估,但是每次保存文件时都会提示您购买。如果您愿意付费,则主要版本许可证的价格为 100 美元。

版本控制

PyCharm 和 VS Code 已经内置了版本控制功能。 Sublime Text 提供了Sublime Merge,虽然可以,但是很难为主要版本许可证支付 100 美元。

GitHub 桌面

Github Desktop 似乎具有 Sublime Merge 的大部分功能,但它是免费的。它跟踪更改并具有对 GitHub 的全功能支持。如果您使用 BitBucket 或 GitLab,您的里程可能会有所不同,但是基本功能仍然可以使用。

Git

有趣的事实-Linus Torvalds 讨厌使用其他版本控制介质,以至于他最终创建了 Git 版本系统来协助 Linux 内核。其他人也都想要这个。如果您发现 GUI 笨拙,这就是您一直在寻找的命令行工具。这是基本的 git 客户端,它也可以在远程服务器上托管 git 存储库。我比 GitHub 桌面使用的更多,但是我仍然更多地使用 PyCharm 的版本控制。这是当我需要对 git repos 进行快速维护时,例如重新建立多个 repos 的基础或拉下陈旧项目的最新更改。


社区

PySlackers-一个致力于通过提供安全和包容的场所来建立和启用全球 Python 社区的社区

每个人都喜欢 Slack,所以我推荐这个 Python 社区。它曾经被称为 Python Developers,但似乎已经进行了重命名。有一个问题?问。通常,拥有 1000 多个成员,您会很快得到答复。

论坛-Python 编程语言的官方主页

Python 论坛非常适合那些不想在网络上创建另一个帐户的人。答案可能较慢,但是您可以确保在这里找到很多历史记录。

Stack Overflow-开发人员学习,共享和建立职业

你知道这要来了。Stack Overflow 仍然是寻求答案的好地方,Python 也不例外。


教程

我们总是渴望更多,或者至少应该如此。这里有一些很好的资源,可以帮助您进一步学习。

Flask 巨型教程第一部分:世界,您好!您将开始学习如何使用 Python 和 Flask 创建 Web 应用程序的旅程。

Flask 是一个比 Django 更舒适的 Web 框架,这就是为什么我首先发布它。非常适合不需要数据库后端的网站(尽管做得很好)。您应该将 Flask 用于小型网站和基本 API。

简介·Django Girls 教程- 本教程不会神奇地使您成为程序员。如果您想擅长于此,则需要几个月甚至更长的时间…

Django Girls 是一个非营利性组织,致力于教女孩和妇女如何编码。尽管它以妇女为导向,但它也是每个人的绝佳资源。他们有一个很棒的教程,介绍如何开始使用 Django。首次启动时,某些步骤会重复进行,但值得进行几次。

[编写第一个 Django 应用程序,第 1 部分 Django 文档](https://docs.djangoproject.com/en/2.2/intro/tutorial01/)

Django 也有他们的教程,但我发现从 Django Girls 获得基础知识之后,后续操作会更容易。 Django 是一个包含电池的 Web 框架。当您创建由数据库支持的网站时,最好用它。

威廉·文森特 - William 是一位软件工程师,也是 Django For 初学者和 REST API 的作者。

威廉·文森特(William Vincent)创建了一个小型博客,内容涵盖了所有内容,重点是 Python 和 Javascript。各处都有播客和教程,值得一读。

在为您提供这些资源后,它们将教您如何开始使用这些库。最终,您可以尝试并退出“教学模式”。


摘要

这一系列有关 Python 的文章到此结束。我希望你学到了一些新东西。我们通过提供开发工作流的示例,一系列工具以及可助您一臂之力的教程来总结了这一点。

Rating: