安装 Python
- 1: windows 安装
- 1.1: [不推荐]直接安装python
- 1.2: 使用 pyenv 安装
- 1.3: 使用 anaconda 安装
- 2: linux 安装
- 2.1: 使用 pyenv 安装
- 3: 设置 pip 的源
1 - windows 安装
1.1 - [不推荐]直接安装python
警告
不推荐直接安装 python,最好通过 pyenv 或者 anaconda 来安装和管理多个 python 版本。下载
https://www.python.org/ftp/python/
从这个网址可以下载到各个版本的 python 安装文件,比如常见的 3.10/3.11/3.12 版本:
下载对应版本的 python-3.xx.x-amd64.exe 文件即可。
安装
通过下载的 python-3.xx.x-amd64.exe 文件安装。
安装过程选自定义安装,然后记得勾选自动设置windows环境变量。
安装完成后,在 cmd 中验证版本:
$ pip --version
pip 23.0.1 from D:\work\soft\python\lib\site-packages\pip (python 3.10)
$ python --version
Python 3.10.11
问题
直接安装是最简单最直接的方式,但只能安装一个版本,当遇到需要多个 python 版本时就麻烦了。
因此,日常还是用 pyenv 来安装和管理多个 python 版本。
1.2 - 使用 pyenv 安装
pyenv
pyenv 介绍
pyenv 是一个简单的 python 版本管理工具,官网地址:
https://github.com/pyenv/pyenv
pyenv 的官网说明:
Pyenv 并不正式支持 Windows,也不能在 Windows 的 Linux 子系统之外的 Windows 环境中运行。此外,即使在 Windows 下,它所安装的 Pythons 也不是原生的 Windows 版本,而是在虚拟机中运行的 Linux 版本,因此你不会获得 Windows 特有的功能。
如果您使用的是 Windows,我们建议您使用 @kirankotari 的 pyenv-win fork,它可以安装原生的 Windows Python 版本。
因此在 windows 平台上,要使用 pyenv-win:
https://github.com/pyenv-win/pyenv-win/
pyenv 安装
参考 pyenv-win 的官方安装文档:
https://github.com/pyenv-win/pyenv-win/blob/master/docs/installation.md
打开 cmd,执行命令:
git clone https://github.com/pyenv-win/pyenv-win.git "%USERPROFILE%\.pyenv"
增加如下环境变量:
- PYENV=
C:\Users\sky\.pyenv\pyenv-win\
- PYENV_HOME=
C:\Users\sky\.pyenv\pyenv-win\
- PYENV_ROOT=
C:\Users\sky\.pyenv\pyenv-win\
修改 PATH 环境变量,增加两个路径:
%USERPROFILE%\.pyenv\pyenv-win\bin
%USERPROFILE%\.pyenv\pyenv-win\shims
重新打开 cmd 或者 git-bash,验证一下:
$ pyenv --version
pyenv 3.1.1
安装 python
pyenv 命令
通过下面的命令可以看到 pyenv 可以安装的版本列表:
pyenv install -l
内容太多了,按照版本 grep 一下,如看看 3.11.x 版本:
pyenv install -l | grep 3.11
安装 3.11.9 版本
安装 python 3.11.9 版本:
pyenv install 3.11.9
输出为:
:: [Info] :: Mirror: https://www.python.org/ftp/python
:: [Info] :: Mirror: https://downloads.python.org/pypy/versions.json
:: [Info] :: Mirror: https://api.github.com/repos/oracle/graalpython/releases
:: [Downloading] :: 3.11.9 ...
:: [Downloading] :: From https://www.python.org/ftp/python/3.11.9/python-3.11.9-amd64.exe
:: [Downloading] :: To C:\Users\sky\.pyenv\pyenv-win\install_cache\python-3.11.9-amd64.exe
:: [Installing] :: 3.11.9 ...
:: [Info] :: completed! 3.11.9
设置 3.11.9 为全局默认版本:
pyenv global 3.11.9
验证一下 python 版本:
$ python3 --version
Python 3.11.9
$ python --version
Python 3.11.9
此时通过 pyenv versions
命令可以看到系统中只安装了一个 3.11.9 版本:
$ pyenv versions
* 3.11.9 (set by C:\Users\sky\.pyenv\pyenv-win\version)
此时 pip 版本信息如下:
$ pip --version
pip 24.0 from C:\Users\sky\.pyenv\pyenv-win\versions\3.11.9\Lib\site-packages\pip (python 3.11)
安装 3.10.11 版本
安装 python 3.10.11 版本:
pyenv install 3.10.11
安装 3.12.8 版本
安装 python 3.12.8 版本:
pyenv install 3.12.8
切换版本
pyenv 的 shell 命令本来是用来在当前 shell 中临时设置 python 版本,覆盖 global 设置。但是不知道为什么在 windows 下这个命名不能生效:
$ pyenv versions
3.10.11
* 3.11.9 (set by C:\Users\sky\.pyenv\pyenv-win\version)
3.12.8
$ python3 --version
Python 3.11.9
$ code pyenv shell 3.12.8
$ pyenv versions
3.10.11
* 3.11.9 (set by C:\Users\sky\.pyenv\pyenv-win\version)
3.12.8
$ python3 --version
Python 3.11.9
因此只好通过 pyenv global 命令来修改了,只是这样每次用的时候要注意先确认当前到底设置为哪个版本了。
$ pyenv global 3.12.8
$ pyenv versions
3.10.11
3.11.9
* 3.12.8 (set by C:\Users\sky\.pyenv\pyenv-win\version)
$ python3 --version
Python 3.12.8
$ pip --version
pip 24.3.1 from C:\Users\sky\.pyenv\pyenv-win\versions\3.12.8\Lib\site-packages\pip (python 3.12)
1.3 - 使用 anaconda 安装
anaconda 介绍
anaconda 是一个免费的 python 发行版本,包含很多常用的 python 库,官网地址:
anaconda 的官网说明:
The Operating System for AI
The world’s most trusted open ecosystem for sourcing, building, and deploying data science and AI initiatives
为 AI 打造的操作系统
全球最值得信赖的开放生态系统,用于 数据科学和 AI 的获取、构建和部署
anaconda 安装
下载地址:
https://www.anaconda.com/download/#windows
下载 Anaconda3 Windows x86_64 安装文件如:
https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Windows-x86_64.exe
安装时选择只为自己安装,然后选择安装路径 D:\sky\work\soft\anaconda\
,设置采用默认选项:
安装 python
在 anaconda navigator 界面,点击 Environments
标签,点击 Create
按钮,选择 Python 3.xx
版本,点击 Create
按钮,创建一个名为 xxxx
的环境。
然后点名字后面的绿色三角符号,就可以打开一个 cmd 命令行终端,在这个终端中输入 python --version
就可以看到 python 的版本。
之后就可以在这个环境中使用 python 了。
2 - linux 安装
2.1 - 使用 pyenv 安装
以 debian 12 为例,通过 pyenv 安装多个版本的 python。
安装 pyenv
pyenv 介绍
pyenv 是一个简单的 python 版本管理工具,官网地址:
https://github.com/pyenv/pyenv
pyenv 安装
参考 pyenv 的官方安装文档:
https://github.com/pyenv/pyenv?tab=readme-ov-file#linuxunix
执行安装命令:
curl -fsSL https://pyenv.run | bash
输出为:
Cloning into '/home/sky/.pyenv'...
remote: Enumerating objects: 1363, done.
remote: Counting objects: 100% (1363/1363), done.
remote: Compressing objects: 100% (724/724), done.
remote: Total 1363 (delta 824), reused 806 (delta 506), pack-reused 0 (from 0)
Receiving objects: 100% (1363/1363), 1.14 MiB | 5.63 MiB/s, done.
Resolving deltas: 100% (824/824), done.
Cloning into '/home/sky/.pyenv/plugins/pyenv-doctor'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 11 (delta 1), reused 5 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (11/11), 38.72 KiB | 619.00 KiB/s, done.
Resolving deltas: 100% (1/1), done.
Cloning into '/home/sky/.pyenv/plugins/pyenv-update'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 5 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (10/10), done.
Resolving deltas: 100% (1/1), done.
Cloning into '/home/sky/.pyenv/plugins/pyenv-virtualenv'...
remote: Enumerating objects: 64, done.
remote: Counting objects: 100% (64/64), done.
remote: Compressing objects: 100% (57/57), done.
Receiving objects: 100% (64/64), 43.08 KiB | 1.08 MiB/s, done.
remote: Total 64 (delta 10), reused 23 (delta 0), pack-reused 0 (from 0)
Resolving deltas: 100% (10/10), done.
WARNING: seems you still have not added 'pyenv' to the load path.
# Load pyenv automatically by appending
# the following to
# ~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
# and ~/.bashrc (for interactive shells) :
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"
# Restart your shell for the changes to take effect.
# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:
eval "$(pyenv virtualenv-init -)"
pyenv 被安装在目录 “$HOME/.pyenv”,遵循上面的提示,
vi ~/.zshrc
增加如下内容:
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - zsh)"
备注:注意修改 bash 为 zsh,因为我一般默认用 zsh。这里如果没有改过来,后面安装完成后 path 路径会有问题。
执行
source ~/.zshrc
重新装载,然后验证一下:
pyenv --version
输出为:
pyenv 2.5.3
安装 python
准备工作
python 安装时需要使用 zlib,首先安装:
sudo apt install zlib1g-dev libbz2-dev libncurses-dev libffi-dev libreadline-dev libssl-dev libsqlite3-dev liblzma-dev
否则会报错:
ModuleNotFoundError: No module named 'zlib'
ModuleNotFoundError: No module named '_bz2'
ModuleNotFoundError: No module named '_curses'
ModuleNotFoundError: No module named '_ctypes'
ModuleNotFoundError: No module named 'readline'
ModuleNotFoundError: No module named '_ssl'
ModuleNotFoundError: No module named '_sqlite3'
ModuleNotFoundError: No module named '_lzma'
安装完成之后,验证一下:
python3 -c "import bz2; import curses; import ctypes; import readline; import ssl; print('All modules loaded successfully')"
如果没有报错,则输出为:
All modules loaded successfully
pyenv 命令
通过下面的命令可以看到 pyenv 可以安装的版本列表:
pyenv install -l
内容太多了,按照版本 grep 一下,如看看 3.11.x 版本:
pyenv install -l | grep 3.11
安装 3.11 版本
pyenv install -l | grep 3.11
发现 3.11 系列最新的是 3.11.11 版本。
安装 python 3.11.11 版本:
pyenv install 3.11.11
输出为:
Downloading Python-3.11.11.tar.xz...
-> https://www.python.org/ftp/python/3.11.11/Python-3.11.11.tar.xz
Installing Python-3.11.11...
Installed Python-3.11.11 to /home/sky/.pyenv/versions/3.11.11
设置 3.11.1 为全局默认版本:
pyenv global 3.11.11
验证一下 python 版本:
$ python3 --version
Python 3.11.11
$ python --version
Python 3.11.9
此时通过 pyenv versions
命令可以看到系统中只安装了一个 3.11.11 版本和一个系统自带的版本(system):
$ pyenv versions
pyenv versions
system
* 3.11.11 (set by /home/sky/.pyenv/version)
此时 pip 版本信息如下:
$ pip --version
pip 24.0 from /home/sky/.pyenv/versions/3.11.11/lib/python3.11/site-packages/pip (python 3.11)
$ pip3 --version
pip 24.0 from /home/sky/.pyenv/versions/3.11.11/lib/python3.11/site-packages/pip (python 3.11)
安装 3.10 版本
pyenv install -l | grep 3.10
发现 3.10 系列最新的是 3.10.16 版本:
pyenv install 3.10.16
安装 3.12 版本
pyenv install -l | grep 3.12
发现 3.12 系列最新的是 3.12.9 版本:
pyenv install 3.12.9
切换版本
pyenv 的 shell 命令用来在当前 shell 中临时设置 python 版本,覆盖 global 设置:
$ pyenv versions
system
3.10.16
* 3.11.11 (set by /home/sky/.pyenv/version)
3.12.9
$ python3 --version
Python 3.11.11
$ pyenv shell 3.12.9
$ pyenv versions
system
3.10.16
3.11.11
* 3.12.9 (set by PYENV_VERSION environment variable)
$ python3 --version
Python 3.12.9
pyenv global 命令修改全局默认配置,注意这个修改不会立即生效,需要退出当前 shell 重新打开:
$ pyenv global 3.10.16
# 不直接生效
$ pyenv versions
system
3.10.16
3.11.11
* 3.12.9 (set by PYENV_VERSION environment variable)
# 退出当前 shell 重新打开
$ pyenv versions
system
* 3.10.16 (set by /home/sky/.pyenv/version)
3.11.11
3.12.9
$ python3 --version
Python 3.10.16
$ pip --version
pip 23.0.1 from /home/sky/.pyenv/versions/3.10.16/lib/python3.10/site-packages/pip (python 3.10)
3 - 设置 pip 的源
默认 pip 使用的是国外的镜像(疑似是 https://pypi.org/ ?),速度较慢。
升级 pip
安装完成后的 pip 版本:
pip3 --version
pip 24.0 from /home/sky/.pyenv/versions/3.11.11/lib/python3.11/site-packages/pip (python 3.11)
升级 pip 到最新的版本:
python -m pip install --upgrade pip
输出为:
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: pip in ./.pyenv/versions/3.11.11/lib/python3.11/site-packages (24.0)
Collecting pip
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c9/bc/b7db44f5f39f9d0494071bddae6880eb645970366d0a200022a1a93d57f5/pip-25.0.1-py3-none-any.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 4.8 MB/s eta 0:00:00
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 24.0
Uninstalling pip-24.0:
Successfully uninstalled pip-24.0
Successfully installed pip-25.0.1
升级之后的 pip 版本:
pip --version
pip 25.0.1 from /home/sky/.pyenv/versions/3.11.11/lib/python3.11/site-packages/pip (python 3.11)
配置国内镜像源
linux 下 pip 的配置文件路径是 ~/.pip/pip.conf
:
mkdir -p ~/.pip
vi ~/.pip/pip.conf
windows 下 pip 的配置文件路径是 ~/pip/pip.ini
:
mkdir -p ~/pip
vi ~/pip/pip.ini
配置的方式是一样的,输入内容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
配置完成后检查:
pip3 config list
正常应输出:
global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
install.trusted-host='https://pypi.tuna.tsinghua.edu.cn'
其他国内源
备用:
- 清华大学TUNA镜像源: https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云镜像源: http://mirrors.aliyun.com/pypi/simple/
- 中国科学技术大学镜像源: https://mirrors.ustc.edu.cn/pypi/simple/
- 华为云镜像源: https://repo.huaweicloud.com/repository/pypi/simple/
- 腾讯云镜像源:https://mirrors.cloud.tencent.com/pypi/simple/
配置 nexus 代理源
创建代理仓库
在 nexus 中,创建 pypi proxy 仓库, 如:
pypi-proxy-pypiorg
: 代理地址为 https://pypi.org/pypi-proxy-tsinghua
: 代理地址为 https://pypi.tuna.tsinghua.edu.cn/
备注: 特别注意代理地址不能带
/simple
后缀,否则会报错
验证代理是否可用,可以访问如下的地址:
http://192.168.0.246:8081/repository/pypi-proxy-pypiorg/simple/requests/
正常会显示如下:
备注: 如果代理地址中带
/simple
后缀,访问这个地址就会报错 404.
再创建一个名为 pypi-public 的 pypi group 仓库,将上面两个 pypi proxy 仓库加进去,顺序为:
- pypi-proxy-tsinghua
- pypi-proxy-pypiorg
以后对外都只使用 pypi-public 仓库,如果内部有什么改动如修改代理仓库为阿里云,就不会影响到外部的使用。
使用代理仓库
修改 pip 配置,设置为:
[global]
index-url = http://192.168.0.246:8081/repository/pypi-public/simple
[install]
trusted-host = 192.168.0.246:8081
尝试安装一个 pdf2zh 验证代理:
pip install pdf2zh
正常能看到从代理仓库下载:
Collecting shellingham>=1.3.0
Downloading http://192.168.0.246:8081/repository/pypi-public/packages/shellingham/1.5.4/shellingham-1.5.4-py2.py3-none-any.whl (9.8 kB)
Collecting toposort>=1.5
Downloading http://192.168.0.246:8081/repository/pypi-public/packages/toposort/1.10/toposort-1.10-py3-none-any.whl (8.5 kB)
Collecting click-default-group>=1.2
Downloading http://192.168.0.246:8081/repository/pypi-public/packages/click-default-group/1.2.4/click_default_group-1.2.4-py2.py3-none-any.whl (4.1 kB)
安装完成之后再去验证 nexus pypi 代理仓库: