Python开发环境配置

Python 作为一个语言,代码需要一个解释器来进行解释,这个解析器就是专门针对 Python 代码的,只有它才知道这些代码是什么意思。编写代码也需要一定的工具,理论上所有的纯文本都可以编写代码,但工欲善其事必先利其器,好用的工具能够使我们事半功倍。

Python 安装说明

当然,你可以从 python 的官网「 https://www.python.org 」的下载栏目进行安装包下载,下载时需要按自己实际的操作系统( Windows 还是 Mac 等 )下载相应的包,进行界面化安装。不过这种安装不太推荐,我也不希望你这么做。因为这里有几个问题:

  • 这种安装比较复杂,比如在 Window 里还要设置一些环境变量
  • 容易与已有的 Python 冲突,Mac 操作系统会自带 Python (注意:它是 2.x 版本,并不能直接使用 )
  • 无法灵活切换版 Python 版本,有时间我们需要使用特定版本的 Python 需要灵活切换,这种模式无法做到灵活切换管理

等等,那么以上问题有没有解决的办法?有的,Anaconda 是一个环境套件,能够解决我们上述问题。

Anaconda

Anaconda是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本 python 并存、切换以及各种第三方包安装问题。

说到这里先不要动手去下载安装,因为 Anaconda 由于是一个大而全的套件,里边已经为大家安装好了常用的库包,并且还自带一些开发工具,从而使其巨大无比,安装后就是 1 个多 G,一旦运行电脑都显得有些吃力。为了解决这个问题,miniconda出现了。它小巧,安装包六七十M,下载、安装速度快。我们可以使用清华大学建立的镜像下载站点进行下载,由于服务器在国内,速度很快。

接下来,我们一起安装吧。

miniconda

打开以下网址:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
# 当然,你实在需要一个大而全的 Anaconda 可以用以下网址下载
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

按最后一列的时间排序,或者接页面拉到最后,找到最现在最近时间发布的安装包,Mac 电脑选择 MacOSX-x86_64.pkg Windows 选择 Windows-x86_64.exe 进行下载。py39 字样代表 Python 的默认版本是 3.9 版本。

以下是 miniconda 下载文件(截止 2022-12-23,最新的安装文件是默认 3.10 版本,安装后可创建其他 Python 版本的环境,包括 Python 2.x 和 Python 3.10 版本,如果不存在的版本可以在 conda-forge 中安装):

版本 MAC(.pkg) Windows(.exe) Linux(.sh) 备注
最新 最新MAC版本 最新 Windows 最新 Linux Mac .sh 文件
py3.10 py3.10 MAC版本 py3.10 Windows py3.9 Linux
py3.9 py3.9 MAC版本 py3.9 Windows py3.9 Linux
py3.8 py3.8 MAC版本 py3.8 Windows py3.8 Linux

下载完成后双击安装包按界面提示进行安装。安装完成后 :

  • Windows 会在开始菜单或者桌面产生一个终端管理器(Anconda Prompt 字样)
  • Mac 在电脑启动器里找到「终端」(Terminal)

MAC 和 Linux 可以用命令安装 .sh 文件:bash Miniconda3-latest-MacOSX-x86_64.sh (注意,需要 cd 命令到 sh 文件的目录)

启动它,可以看到类型这样的字样:

mac:
Last login: Wed Apr  8 15:28:02 on ttys001
(base) gairuo@MacBook Downloads %

windows:
(base) PS C:\Users\gairuo>_

其中 (base) 就是它默认的环境了,如果需要设置多 python 环境可以看下一节,否则直接使用它。

多 Python 环境

如果不需要多个 python 版本,跳过这儿。给新的环境起个名字,如起名 py311data 创建的用来专门做数据分析的,创建了 Python 3.11 版本的环境。常用命令如下:

# 创建新环境,<环境名称>, python 版本
conda create -n py311 python=3.11
# 删除环境
conda remove -n py311 --all
# 进入、激活环境
conda activate py311
# 退出环境
conda deactivate
# 查看所有虚拟环境及当前环境
conda info -e

# 其他不常用
conda -V # 查看conda的版本
conda update conda # 升级
conda list # 安装软件列表
conda install numpy # 安装库包,用 pip 也可以
conda uninstall numpy # 安装库包
conda search python # 查询支持的Python版本
# 使用 conda-forge 通道,对于一些 conda 没有的版本时使用
conda create -n py311 python=3.11 -c conda-forge

按下来就是安装三方库,一般用 pip 来管理三方库:

pip install numpy # 安装库
pip install numpy httpx django # 同时安装多个库
pip install numpy -U # 升级库,安装最新版
pip install numpy==1.24.2 # 安装指定版本
# 指定源,用国内源可加速下载
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
# 其他方法,如遇到无法安装的可尝试,如 lxml 在 Python 3.11 下报错,可用此方法
conda install -c anaconda lxml # anaconda 渠道
conda install -c conda-forge jupyterlab # conda 社区渠道

可以一次性创建环境+安装三方库(可指定版本),如:

conda create -c conda-forge -n py311 python==3.11.3 jupyterlab=3.6.3 'jupyterlab-lsp=4.1.0' 'jupyter-lsp-python=2.1.0' pandas httpx

安装编辑器

代码编辑器,即 IDE,编写代码的工具。代码编辑器可选择的比较多,一般可使用 Jupyter Lab(推荐,学习和数据分析)、Visual Studio Code(脚本和小项目)、PyCharm(大型项目)、 Sublime Text(文本编辑查看)。

我们初学不用使用大型的工程项目编辑器,如 Visual Studio Code、PyCharm,这里推荐 Jupyter Lab(它的上一代是 Jupyter Notebook),它是一个网页、界面化、即时反馈结果,后期在做数据分析、机器学习时,它的可视化功能也非常方便。

Jupyter 安装

提醒

JupyterLab 是 Notebook 未来的替代者,推荐套用使用。如果还是希望使用 Jupyter Notebook,可以用以下方法安装:
pip install jupyter,启动命令是 jupyter notebook

官网介绍:https://jupyter.org/install。在上文中提示的「终端」中输入以下代码再回车:

# 安装 Jupyter Lab, 使用清华的源加快下载速度
pip install jupyterlab -i https://pypi.tuna.tsinghua.edu.cn/simple

出现上文的终端命令提示符说明安装成功。

提醒

如果安装过程中出现红色提示安装停止,可能是网络超时原因,可重新输入回车(或者按键盘向上键从历史调出命令回来安装,或者试试其他源如豆瓣 https://pypi.douban.com/simple 、阿里源 http://mirrors.aliyun.com/pypi/simple )再尝试安装。

接下来启动 JupyterLab, 在终端输入:

# jupyter notebook
jupyter lab

这样就会在浏览器中打开一个网页(如没自动打开可按界面上提示的网址复制到浏览器手动打开),如果发现网页列出的目录和文件不是自己想要的,那么在启动 Jupyter Notebook 前 Windows 可以用 d:(换到D盘) , 然后 cd D:\gairuo\study (根据自己的实际目录,mac 直接使用类似 cd /Users/gr/Downloads ),再执行启动命令,这样 notebook 就默认在你指定的目录下了。

推荐安装 jupyterlab-lsp 插件,使用语言服务器协议为 JupyterLab 提供编码帮助(代码导航+悬停建议+linters+自动完成+重命名)。

# https://github.com/jupyter-lsp/jupyterlab-lsp
pip install jupyterlab-lsp -U
pip install jedi-language-server -U
pip install 'python-lsp-server[all]' -U # 与以上二选一
# 执行命令重启 JupyterLab

如果想格式化代码(一般快捷键是 ctr+l)可以安装如下插件:

# 代码格式化 
# 安装配置教程 https://github.com/ryantam626/jupyterlab_code_formatter
pip install jupyterlab-code-formatter
pip install black isort
# 执行命令重启 JupyterLab

如果想获得更好的代码提示、自动补全体验可以试用 VS code 和 PyCharm 中的 jupyter notebook 功能。

# 所有插件及开启状态
jupyter labextension list

# 关闭和开启单元格浮动工具栏
jupyter labextension disable @jupyterlab/cell-toolbar-extension
jupyter labextension enable @jupyterlab/cell-toolbar-extension

Jupyter 的使用

下面我们说说 jupyter 的使用。从一开始建议大家整理好自己的文件目录,记住创建的文件在哪个位置,这是很重要的。进入到合适的目录后,点击页面的新建(new)再选择 python 3 创建,这样就创建了一个代码编辑本,我们就可以在这儿写代码了。

Ju

文件改名,点击头部 jupyter 图标旁边的文件名会弹出改名框,也可在「文件」菜单下的「重命名」进行改名。文件名最好有规律,如带上日期、需求名之类。

可以测试一下其他菜单,比如插入行、删除行、合并行、拆分行、重启服务等。

留意页面右上 「python 3」旁边的圆圈,如果是实心的说明正在执行代码,同时代码行不会显示行执行编号,会显示星号,此时只需要等待就行。

Jupyter Lab 的使用和 Notebook 的类似,快捷键也基本相同。

下边是一些快捷键,尽量使用这这些快捷键来操作以提高效率:

快捷键 功能
<tab> 代码提示
Shift+ Enter 执行本行并定位到新增的行
Shift+Tab(1-3次) 查看函数方法说明
D, D 连按 D 删除本行 (需按 Esc 退出编辑状态)
A / B 向上 / 下增加一行 (需按 Esc 退出编辑状态)
M / Y Markdown / 代码模式(需按 Esc 退出编辑状态)
command/control + / 注释 / 取消注释
i, i 连按 i 退出单元格执行(需按 Esc 退出编辑状态)

下边是一些魔法方法,可以实现一些特定的功能:

方法 功能
%time 代码执行时间
{函数}? 查看函数文档
%timeit {code} 计时性能测试(算法复杂度)
%run {dir/code.py} 脚本文件加载
%env 查看所有环境变量
%%file test.py 将 cell 中的脚本写入一个 py 文件
!python test.py 执行脚本
!pip install numpy 安装库包
pd.re*sq*? 通配符查找相关属性方法
%whos%whos int 列出所有(指定类型)变量
%who_ls%who_ls int 列出所有(指定类型)变量,列表形式
%magic 查看所有的IPython魔法方法文档

至此,万事俱备,我们开始写代码吧!

相关推荐
Eiceblue5 分钟前
通过Python 调整Excel行高、列宽
开发语言·vscode·python·pycharm·excel
Jam-Young15 分钟前
Python中的面向对象编程,类,对象,封装,继承,多态
开发语言·python
Light6026 分钟前
低代码牵手 AI 接口:开启智能化开发新征程
人工智能·python·深度学习·低代码·链表·线性回归
墨绿色的摆渡人28 分钟前
用 Python 从零开始创建神经网络(六):优化(Optimization)介绍
人工智能·python·深度学习·神经网络
小han的日常1 小时前
pycharm分支提交操作
python·pycharm
明月清风徐徐1 小时前
Scrapy爬取豆瓣电影Top250排行榜
python·selenium·scrapy
theLuckyLong1 小时前
SpringBoot后端解决跨域问题
spring boot·后端·python
Yongqiang Cheng1 小时前
Python operator.itemgetter(item) and operator.itemgetter(*items)
python·operator·itemgetter
MavenTalk1 小时前
Move开发语言在区块链的开发与应用
开发语言·python·rust·区块链·solidity·move
FksLiao2 小时前
Superset安装
python