Python
支持多种方式安装,这里推荐使用Anaconda
,更方便管理版本等信息。
1. Anaconda介绍 Anaconda
是一个用于科学计算的Python 发行版 ,支持Linux、Mac、Windows
系统,包含了众多流行的科学计算、数据分析的Python
包。 此外,Anaconda
提供了包管理与环境管理的功能,可以很方便地解决多版本python
并存、切换以及各种第三方包安装问题。
1.1 下载方式
从官网下载比较慢,推荐使用国内下载地址,然后选择自己系统对应的版本,下载即可
2. 镜像源 2.1 更换国内源 通常anaconda
的默认源在境外,下载速度会非常慢甚至导致网络错误下载包失败,这里推荐清华大学镜像源,添加方法如下:
$ conda config --set show_channel_urls yes channels : - defaults show_channel_urls : true default_channels : - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels : conda-forge : https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2 : https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda : https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo : https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch : https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch-lts : https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk : https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
注:由于更新过快难以同步,该镜像源不会同步pytorch-nightly
, pytorch-nightly-cpu
, ignite-nightly
这三个包。更多信息可查看官方文档:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
2.2 清除缓存 添加镜像源成功后,需要手动清除索引缓存,保证用的是镜像是最新的配置;清除命令如下:
2.3 更新镜像源
2.4 版本升级 # 查看当前版本 $ conda -V conda 22.9.0# 升级版本 $ conda update conda Collecting package metadata (current_repodata.json): done Solving environment: done# All requested packages already installed. Retrieving notices: ...working... done
3. 管理python环境 3.1 查看可用版本 使用conda search x
搜索某个软件包的可用版本。
$ conda search python Loading channels: done# Name Version Build Channel python 2.7.13 h32f5f24_13 anaconda/pkgs/main .... python 3.9.15 h218abb5_2 anaconda/pkgs/main ... python 3.10.0 h88f2d9e_0 anaconda/pkgs/main .... python 3.11.0 h1fd4e5f_2 anaconda/pkgs/main ...
3.2 创建环境 使用conda create --name 环境名称 python=x
创建python
新环境,x
可指定具体版本,如下示例创建python3.10
版本
# 创建python3.10开发环境,环境名称为: py310 $ conda create --name py310 python=3.10 Collecting package metadata (current_repodata.json): done Solving environment: done# environment location: /Users/liuqh/opt/anaconda3/envs/py310 added / updated specs: - python=3.10 The following packages will be downloaded: package | build ---------------------------|----------------- pip-23.0.1 | py310hecd8cb5_0 2.6 MB defaults python-3.10.11 | h218abb5_2 13.1 MB defaults setuptools-66.0.0 | py310hecd8cb5_0 1.2 MB defaults wheel-0.38.4 | py310hecd8cb5_0 66 KB defaults ------------------------------------------------------------ Total: 17.0 MB ... Proceed ([y]/n)?# 输入:y Downloading and Extracting Packages python-3.10.11 | 13.1 MB | ######################################################################## | 100% wheel-0.38.4 | 66 KB | ######################################################################## | 100% pip-23.0.1 | 2.6 MB | ######################################################################## | 100% setuptools-66.0.0 | 1.2 MB | ######################################################################## | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done# # # # Retrieving notices: ...working... done
3.3 列出环境 使用conda env list
可以列出我们创建的所有开发环境;
# 列出创建的所有开发环境 $ conda env list # conda environments: base * /Users/liuqh/opt/anaconda3 # 这里的*代表当前使用环境 py310 /Users/liuqh/opt/anaconda3/envs/py310 python3.11 /Users/liuqh/opt/anaconda3/envs/python3.11 python3.7 /Users/liuqh/opt/anaconda3/envs/python3.7
3.4 激活环境 当我们使用的项目,用了不同的python
版本时,可以通过激活对应的环境,来选择适应的版本;激活环境的命令如下:
# 激活python3.11开发环境 $ conda activate python3.11 (python3.11) ~ python -V Python 3.11.3# 激活刚才创建的py310开发环境 $ conda activate py310 (py310) ➜ ~ python -V Python 3.10.11
3.5 删除环境 当我们不想使用某些环境时,可以通过命令:conda env remove --name 环境名称
来删除环境,如下示例删除py310
环境
# 删除 $ conda env remove --name py310 Remove all packages in environment /Users/liuqh/opt/anaconda3/envs/py310:# 查看是否删除 $ conda env list # conda environments: base * /Users/liuqh/opt/anaconda3 # 这里的*代表当前使用环境 python3.11 /Users/liuqh/opt/anaconda3/envs/python3.11 python3.7 /Users/liuqh/opt/anaconda3/envs/python3.7
3.6 导出环境 如果想把本地开发环境,分享给同事,可以通过导出命令conda env export
,如下:
# 导出当前环境 (python3.7) $ conda env export > py37.yaml# 查看导出文件 (python3.7) $ ls py37.yaml# 查看文件内容 $ cat py37.yaml name: python3.7 channels: - defaults dependencies: - ca-certificates=2023.01.10=hecd8cb5_0 ... - pip: - numpy==1.19.1 ... prefix: /Users/liuqh/opt/anaconda3/envs/python3.7
3.7 导入环境 有导出自然就有导出,比如同事给你的环境文件是py37.yaml
,你可以基于这个文件直接导入本地,导入命令如下:
# 基于环境文件创建环境 $ conda env create -f py37.yaml Collecting package metadata (repodata.json): done Solving environment: done Preparing transaction: done Verifying transaction: done
3.8 默认环境 1. 关闭base环境 安装完 Conda 之后,开启终端将默认进入base
环境,如果想关闭可使用下面命令:
$ conda config --set auto_activate_base false
2. 指定默认环境(mac) 修改~/.bashrc
source /Users/liuqh/opt/anaconda3/etc/profile.d/conda.sh conda activate python3.11
修改之后执行source ~/.bashrc
,后面新创建的终端都是指定环境
4. 依赖管理 4.1 安装依赖 python
安装依赖(第三方包),常见的方式是使用pip install
,除此之外,还可以使用conda install
,下面以安装requests
为示例,两种方式使用分别如下:
# 使用pip 安装 $ pip install requests # 使用 conda $ conda install requests # 安装指定版本 $ conda install requests=2.29.0
通过pip 安装依赖时,可以使用 -i
指定加速源来提升下载速度,如下示例:
# 根据requirements.txt 下载依赖 $ pip install -r requirements.txt -i 加速源 # 直接下载包 $ pip install -i 加速源 numpy
国内加速源部分整理如下:
1. 清华大学开源软件镜像站:https://pypi.tuna.tsinghua.edu.cn/simple/ 2. 阿里云 PyPI 镜像:http://mirrors.aliyun.com/pypi/simple/ 3. 华为云 PyPI 镜像:http://mirrors.huaweicloud.com/repository/pypi/simple/ 4. 豆瓣 PyPI 镜像:http://pypi.douban.com/simple/ 5. ustc PyPI 镜像:http://mirrors.ustc.edu.cn/pypi/web/simple/ ```shell $ conda remove requests
4.3 查看已安装依赖 # 查看所有 $ conda list (base) ➜ ~ conda list# packages in environment at /Users/liuqh/opt/anaconda3: # Name Version Build Channel _anaconda_depends 2023.03 py39_0 defaults _ipyw_jlab_nb_ext_conf 0.1.0 py39hecd8cb5_1 defaults alabaster 0.7.12 pyhd3eb1b0_0 defaults ...# 通过模糊搜索 $ conda list | grep req requests 2.29.0 py39hecd8cb5_0 defaults requests-file 1.5.1 pyhd3eb1b0_0 defaults requests-toolbelt 0.9.1 pyhd3eb1b0_0 defaults
5. 编辑器 5.1 下载PyCharm 官方下载地址:https://www.jetbrains.com/pycharm/download
破解方式参考: https://www.exception.site/essay/pycharm-pojie-jihuoma
5.2 配置PyCharm 这里以mac
系统为示例,windows
系统同学可做参考;
6. 运行代码 开发过程中,我们需要经常测试一段代码的输出,是否符合我们的预期,这里列出一些常见的运行代码示例;
6.1 通过命令行交互 ➜ python Python 3.9 .16 (main, Mar 8 2023 , 04:29 :44 ) [Clang 14.0 .6 ] :: Anaconda, Inc. on darwinType "help" , "copyright" , "credits" or "license" for more information.>>> print ('hello word' ) hello word>>> import datetime>>> print ('当前时间: ' , datetime.datetime.now()) 当前时间: 2023 -05-31 23 :58 :34.588136
6.2 通过Pycharm
推荐使用这种方式,命令行不能保存代码,也无法进行断点debug
编写如下代码:
import datetimeimport unittestclass MyTestCase (unittest.TestCase): def test_something (self ): print ("\nHello Word" ) print ('当前时间: ' , datetime.datetime.now())if __name__ == '__main__' : unittest.main()
运行及结果如下:
============================= test session starts ============================== collecting ... collected 1 item demo_test.py::MyTestCase::test_something PASSED [100 %] Hello Word 当前时间: 2023 -06-01 00 :34 :01.070989 ============================== 1 passed in 0.01 s ===============================
6.3 使用jupyter 1. 安装
2.启动 $ jupyter-notebook [I 00:39:01.185 NotebookApp] 把notebook服务器的cookie密码写入 /Users/liuqh/Library/Jupyter/runtime/notebook_cookie_secret _ _ _ _ | | | |_ __ __| |__ _| |_ ___ | |_| | '_ \/ _` / _` | _/ -_) \___/| .__/\__,_\__,_|\__\___| |_| Read the migration plan to Notebook 7 to learn about the new features and the actions to take if you are using extensions. https://jupyter-notebook.readthedocs.io/en/latest/migrate_to_notebook7.html Please note that updating to Notebook 7 might break some of your extensions. [W 00:39:02.754 NotebookApp] Loading JupyterLab as a classic notebook (v6) extension. [I 2023-06-02 00:39:02.764 LabApp] JupyterLab extension loaded from /Users/liuqh/opt/anaconda3/envs/py3.11/lib/python3.11/site-packages/jupyterlab [I 2023-06-02 00:39:02.764 LabApp] JupyterLab application directory is /Users/liuqh/opt/anaconda3/envs/py3.11/share/jupyter/lab [I 00:39:02.771 NotebookApp] notebooks 运行所在的本地路径: /Users/liuqh [I 00:39:02.771 NotebookApp] Jupyter Notebook 6.5.4 is running at: [I 00:39:02.771 NotebookApp] http://localhost:8888/?token=158b1ac571d08daed6bbe1a8a95c638524e376d057f26f8c [I 00:39:02.771 NotebookApp] or http://127.0.0.1:8888/?token=158b1ac571d08daed6bbe1a8a95c638524e376d057f26f8c [I 00:39:02.771 NotebookApp] 使用 Control-C 停止此服务器并关闭所有内核(连续操作两次便可跳过确认界面)。 [C 00:39:02.782 NotebookApp] To access the notebook, open this file in a browser: file:///Users/liuqh/Library/Jupyter/runtime/nbserver-98400-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=158b1ac571d08daed6bbe1a8a95c638524e376d057f26f8c or http://127.0.0.1:8888/?token=158b1ac571d08daed6bbe1a8a95c638524e376d057f26f8c This version of python seems to be incorrectly compiled (internal generated filenames are not absolute). This may make the debugger miss breakpoints. Related bug: http://bugs.python.org/issue1666807
3.使用 在浏览器中访问上述链接,默认会自动在浏览器中打开
jupyter特别适合用于大数据分析、机器学习代码调试,可以很直观的把结果形成图像展示。
4. jupyter-lab jupyter-notebook
启动的单文件编辑,如果想编辑多个文件,可以使用jupyter-lab
启动一个类似在线编辑的页面,效果如下图:
如果想在线运行python
代码,需要新建后缀为.ipynb
文件,然后通过下面两种方式运行代码:
使用%run main.py
直接运行;
使用%load main.py
可以先加载源码,然后点击运行。