Python
支持多种方式安装,这里推荐使用Anaconda
,更方便管理版本等信息。
Anaconda
是一个用于科学计算的Python 发行版,支持Linux、Mac、Windows
系统,包含了众多流行的科学计算、数据分析的Python
包。 此外,Anaconda
提供了包管理与环境管理的功能,可以很方便地解决多版本python
并存、切换以及各种第三方包安装问题。
国内地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive
官网地址: https://www.anaconda.com/
从官网下载比较慢,推荐使用国内下载地址,然后选择自己系统对应的版本,下载即可
通常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/
添加镜像源成功后,需要手动清除索引缓存,保证用的是镜像是最新的配置;清除命令如下:
# 清除索引缓存
$ conda clean -i
$ conda update --all
# 查看当前版本
$ 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
使用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
...
使用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
使用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
当我们使用的项目,用了不同的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
当我们不想使用某些环境时,可以通过命令: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
如果想把本地开发环境,分享给同事,可以通过导出命令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
有导出自然就有导出,比如同事给你的环境文件是py37.yaml
,你可以基于这个文件直接导入本地,导入命令如下:
# 基于环境文件创建环境
$ conda env create -f py37.yaml
Collecting package metadata (repodata.json): done
Solving environment: done
Preparing transaction: done
Verifying transaction: done
安装完 Conda 之后,开启终端将默认进入base
环境,如果想关闭可使用下面命令:
# 执行后,新启动终端发现已经不在进入base环境
$ conda config --set auto_activate_base false
修改~/.bashrc
# 你本地的anaconda3安装路中的etc/profile.d/conda.sh
source /Users/liuqh/opt/anaconda3/etc/profile.d/conda.sh
# 切换到某个环境
conda activate python3.11
修改之后执行
source ~/.bashrc
,后面新创建的终端都是指定环境
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/
$ conda remove requests
# 查看所有
$ 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
官方下载地址:https://www.jetbrains.com/pycharm/download
image-20230531100251989破解方式参考: https://www.exception.site/essay/pycharm-pojie-jihuoma
这里以mac
系统为示例,windows
系统同学可做参考;
开发过程中,我们需要经常测试一段代码的输出,是否符合我们的预期,这里列出一些常见的运行代码示例;
# 控制台输入python进入命令交互
➜ python
Python 3.9.16 (main, Mar 8 2023, 04: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
image-20230601001300612推荐使用这种方式,命令行不能保存代码,也无法进行断点
debug
编写如下代码:
import datetime
import unittest
class MyTestCase(unittest.TestCase):
def test_something(self):
print("\nHello Word")
print('当前时间: ', datetime.datetime.now())
if __name__ == '__main__':
unittest.main()
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 ===============================
$ conda install jupyter
$ 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
在浏览器中访问上述链接,默认会自动在浏览器中打开
image-20230602004529808jupyter特别适合用于大数据分析、机器学习代码调试,可以很直观的把结果形成图像展示。
jupyter-notebook
启动的单文件编辑,如果想编辑多个文件,可以使用jupyter-lab
启动一个类似在线编辑的页面,效果如下图:
如果想在线运行
python
代码,需要新建后缀为.ipynb
文件,然后通过下面两种方式运行代码:
- 使用
%run main.py
直接运行;- 使用
%load main.py
可以先加载源码,然后点击运行。
微信搜索【源码记】查看更多文章
本文由 mdnice 多平台发布