| jupytext |
|
||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| kernelspec |
|
||||||||||||||||||||||||
| translation |
|
(workspace)=
<div id="qe-notebook-header" align="right" style="text-align:right;">
<a href="https://quantecon.org/" title="quantecon.org">
<img style="width:250px;display:inline;" width="250px" src="https://assets.quantecon.org/img/qe-menubar-logo.svg" alt="QuantEcon">
</a>
</div>
到目前为止,我们已经探索了在 Jupyter Notebook 中编写和执行 Python 代码的使用方法。
虽然在处理短代码时 Notebook 高效且灵活,但对于较长的程序和脚本而言,Notebook 并不是最佳选择。
Jupyter Notebook 非常适合交互式计算(即数据科学工作流),可以帮助逐块执行代码。
文本文件和脚本则允许将较长的代码一次性编写并执行。
我们将探索使用 Python 脚本作为替代方案。
随后介绍 JupyterLab 和 Visual Studio Code(VS Code)开发环境,以及版本控制(Git)入门。
在本讲座中,您将学习:
- 使用 Python 脚本
- 配置各种开发环境
- 开始使用 GitHub
在接下来的内容中,假设您已经安装并运行了 Anaconda 环境。
如果您还没有这样做,可能需要[创建一个新的 conda 环境](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#creating-an-environment-with-commands)。
Python 文件用于编写较长的、可复用的代码块——按照惯例,它们具有 .py 后缀。
让我们从以下示例开始。
:caption: sine_wave.py
:lineno-start: 1
import matplotlib.pyplot as plt
import matplotlib as mpl # i18n
import matplotlib.font_manager # i18n
import numpy as np
FONTPATH = "_fonts/SourceHanSerifSC-SemiBold.otf" # i18n
mpl.font_manager.fontManager.addfont(FONTPATH) # i18n
mpl.rcParams['font.family'] = ['Source Han Serif SC'] # i18n
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('正弦波')
plt.show()
由于有多种方式可以执行代码,我们将在不同的开发环境中探索这些方式。
使用 Python 脚本的一大优势在于,您可以从其他脚本中将功能"导入"到当前脚本或 Jupyter Notebook 中。
让我们将之前的代码重写为一个函数,并将其写入名为 sine_wave.py 的文件中。
:caption: sine_wave.py
:lineno-start: 1
%%writefile sine_wave.py
import matplotlib.pyplot as plt
import numpy as np
# 定义 plot_wave 函数
def plot_wave(title : str = '正弦波'):
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title(title)
plt.show()
:caption: second_script.py
:lineno-start: 1
import sine_wave # 导入 sine_wave 脚本
# 调用 plot_wave 函数
sine_wave.plot_wave("正弦波 - 从第二个脚本调用")
这使您可以将代码分割成若干块,并更好地组织代码库。
开发环境是一个一站式工作空间,您可以在其中:
- 编辑和运行代码
- 测试和调试
- 管理项目文件
本讲座将带您了解两种开发环境的使用方法。
JupyterLab 是一个基于浏览器的开发环境,支持 Jupyter Notebook、代码脚本和数据文件。
如果您想在本地安装之前先试用,可以在浏览器中试用 JupyterLab。
您可以使用 pip 安装 JupyterLab:
> pip install jupyterlab
然后像 Jupyter Notebook 一样在浏览器中启动它:
> jupyter-lab
:figclass: auto
您可以看到 Jupyter 服务器正在本地主机的 8888 端口上运行。
以下界面应会自动在您的默认浏览器中打开——如果没有,请按住 CTRL 并单击服务器 URL。
:figclass: auto
点击:
- Notebooks 下的 Python 3(ipykernel)按钮以打开新的 Jupyter Notebook
- Python File 按钮以打开新的 Python 脚本(.py)
您可以随时通过点击顶部的"+"按钮来打开此启动器标签页。
工作目录中的所有文件和文件夹可以在文件浏览器(左侧标签页)中找到。
您可以使用文件浏览器标签页顶部的按钮创建新文件和文件夹。
:figclass: auto
您可以通过访问扩展标签页来安装增加 JupyterLab 功能的扩展。
:figclass: auto
回到之前的示例脚本,在 JupyterLab 中有两种方式可以使用它们:
- 使用魔法命令
- 使用终端
Jupyter Notebook 和 JupyterLab 支持使用魔法命令——这些命令扩展了标准 Jupyter Notebook 的功能。
%run 魔法命令允许您在 Notebook 中运行 Python 脚本。
这是一种便捷的方式,可以运行与 Notebook 处于同一目录下的脚本,并在 Notebook 中显示输出结果。
:figclass: auto
但是,如果您只是想运行 .py 文件,有时使用终端会更方便。
从启动器打开终端并运行以下命令:
> python <path to file.py>
:figclass: auto
您也可以通过打开 ipykernel 控制台逐行运行脚本,可以:
- 从启动器打开
- 在 Notebook 中右键单击并选择 Create Console for Editor
使用 Shift + Enter 运行一行代码。
Visual Studio Code(VS Code)是一个代码编辑器和开发工作空间,可以:
两种界面完全相同。
启动 VS Code 时,您将看到以下界面:
:figclass: auto
通过引导式演练探索如何按照您的喜好自定义 VS Code。
:figclass: auto
出现以下提示时,继续安装所有推荐的扩展。
:figclass: auto
您也可以从扩展标签页安装扩展。
:figclass: auto
Jupyter Notebook(.ipynb 文件)可以在 VS Code 中使用。
在尝试打开 Jupyter Notebook 之前,请确保从扩展标签页安装了 Jupyter 扩展。
创建一个新文件(在文件资源管理器标签页中)并以 .ipynb 扩展名保存。
通过点击编辑器右上角的 Select Kernel 按钮选择运行 Notebook 的内核/环境。
:figclass: auto
VS Code 还通过源代码管理标签页提供出色的版本控制功能。
:figclass: auto
将您的 GitHub 账户链接到 VS Code,以便向您的仓库推送和拉取更改。
有关版本控制的进一步讨论可以在下一节中找到。
要在 VS Code 中打开新终端,请点击终端标签页并选择新建终端。
VS Code 会在您当前工作的目录中打开一个新终端——在 Windows 上是 PowerShell,在 Linux 上是 Bash。
您可以通过终端标签页右端的下拉菜单更改 shell 或打开新实例。
:figclass: auto
VS Code 可以帮助您在不使用命令行的情况下管理 conda 环境。
打开命令面板(CTRL + SHIFT + P 或从视图标签页的下拉菜单中打开)并搜索 Python: Select Interpreter。
这将加载现有环境。
您也可以在命令面板中使用 Python: Create Environment 创建新环境。
新环境(.conda 文件夹)将在当前工作目录中创建。
回到之前的示例脚本,在 VS Code 中同样有两种方式可以使用它们:
- 使用运行按钮
- 使用终端
您可以通过点击编辑器右上角的运行按钮来运行脚本。
:figclass: auto
您也可以通过从下拉菜单中选择 Run Current File in Interactive Window 选项来交互式地运行脚本。
:figclass: auto
这将创建一个 ipykernel 控制台并运行脚本。
命令 python <path to file.py> 在您选择的控制台上执行。
如果您使用的是 Windows 机器,可以使用 Anaconda Prompt 或命令提示符——但通常不使用 PowerShell。
以下是之前代码的执行示例:
:figclass: auto
如果您想使用 Python 开发包和构建工具,可能需要了解[Docker 容器与 VS Code 的使用](https://github.com/RamiKrispin/vscode-python)。
但是,这超出了这些讲座的重点范围。
本节将帮助您熟悉 Git 和 GitHub。
Git 是一个版本控制系统——一种用于管理数字项目(如代码库)的软件。
在许多情况下,相关的文件集合——称为仓库——存储在 GitHub 上。
GitHub 是协作编程项目的宝藏之地。
例如,它托管了我们稍后将使用的许多科学库,例如这个。
Git 是用于管理这些项目的底层软件。
Git 是一个极其强大的分布式协作工具——例如,我们用它来共享和同步这些讲座的所有源文件。
Git 主要有两种形式:
如果您还没有,请尝试:
- 安装 Git。
- 使用 Git 获取 QuantEcon.py 的副本。
例如,如果您已安装命令行版本,打开终端并输入:
git clone https://github.com/QuantEcon/QuantEcon.py(这只是在仓库 URL 前面加上 git clone)
此命令将下载重建您正在阅读的讲座所需的所有组件。
作为第二个任务:
- 注册 GitHub。
- 了解"分叉"GitHub 仓库的方法(分叉意味着创建一个存储在 GitHub 上的 GitHub 仓库的自己的副本)。
- 分叉 QuantEcon.py。
- 将您的分叉克隆到某个本地目录,进行编辑,提交更改,并将其推送回您分叉的 GitHub 仓库。
- 如果您做出了有价值的改进,请向我们发送拉取请求!
有关这些及其他主题的阅读资料,请参阅:
- Git 官方文档。
- 阅读 GitHub 上的文档。
- Scott Chacon 和 Ben Straub 所著的 Pro Git Book。
- 网络上数以千计的 Git 教程之一。