Python学习(一): 环境安装

Python支持多种方式安装,这里推荐使用Anaconda,更方便管理版本等信息。

1. Anaconda介绍

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

1.1 下载方式

  • 国内地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive

  • 官网地址: https://www.anaconda.com/

从官网下载比较慢,推荐使用国内下载地址,然后选择自己系统对应的版本,下载即可

2. 镜像源

2.1 更换国内源

通常anaconda的默认源在境外,下载速度会非常慢甚至导致网络错误下载包失败,这里推荐清华大学镜像源,添加方法如下:

# 创建.condarc文件
$ conda config --set show_channel_urls yes

# 编辑.condarc文件
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 清除缓存

添加镜像源成功后,需要手动清除索引缓存,保证用的是镜像是最新的配置;清除命令如下:

# 清除索引缓存
$ conda clean -i

2.3 更新镜像源

$ conda update --all

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

#
# Package Plan ##
  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
#
# To activate this environment, use
#
#     $ conda activate py310
#
# To deactivate an active environment, use
#
#     $ conda deactivate

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 环境,如果想关闭可使用下面命令:

# 执行后,新启动终端发现已经不在进入base环境
$ conda config --set auto_activate_base false
2. 指定默认环境(mac)

修改~/.bashrc

# 你本地的anaconda3安装路中的etc/profile.d/conda.sh
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/

4.2 删除依赖

$ 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

Python学习(一): 环境安装_第1张图片 image-20230531100251989

破解方式参考: https://www.exception.site/essay/pycharm-pojie-jihuoma

5.2 配置PyCharm

这里以mac系统为示例,windows系统同学可做参考;

Python学习(一): 环境安装_第2张图片 image-20230531101058103 Python学习(一): 环境安装_第3张图片 image-20230531101551091 Python学习(一): 环境安装_第4张图片 image-20230531101706083 Python学习(一): 环境安装_第5张图片 image-20230531101806925

6. 运行代码

开发过程中,我们需要经常测试一段代码的输出,是否符合我们的预期,这里列出一些常见的运行代码示例;

6.1 通过命令行交互

# 控制台输入python进入命令交互
➜ python
Python 3.9.16 (main, Mar  8 202304:29:44)
[Clang 14.0.6 ] :: Anaconda, Inc. on darwin
Type "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

Python学习(一): 环境安装_第6张图片 image-20230601001300612

编写如下代码:

import datetime
import unittest


class MyTestCase(unittest.TestCase):

    def test_something(self):
        print("\nHello Word")
        print('当前时间: ', datetime.datetime.now())


if __name__ == '__main__':
    unittest.main()
Python学习(一): 环境安装_第7张图片 image-20230601003508191

运行及结果如下:

============================= 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.01s ===============================

6.3 使用jupyter

1. 安装
$ conda install jupyter
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.使用

在浏览器中访问上述链接,默认会自动在浏览器中打开

Python学习(一): 环境安装_第8张图片 image-20230602004529808 Python学习(一): 环境安装_第9张图片

jupyter特别适合用于大数据分析、机器学习代码调试,可以很直观的把结果形成图像展示。

4. jupyter-lab

jupyter-notebook启动的单文件编辑,如果想编辑多个文件,可以使用jupyter-lab启动一个类似在线编辑的页面,效果如下图:

Python学习(一): 环境安装_第10张图片

如果想在线运行python代码,需要新建后缀为.ipynb文件,然后通过下面两种方式运行代码:

  • 使用 %run main.py 直接运行;
  • 使用 %load main.py可以先加载源码,然后点击运行。
Python学习(一): 环境安装_第11张图片

微信搜索【源码记】查看更多文章

本文由 mdnice 多平台发布

你可能感兴趣的:(后端)