Python 用户指南
Bianbu OS 预装了 Python 3,安装第三方 Python 库时,推荐使用正确的包管理工具,否则可能会破坏系统软件包依赖。
在 Bianbu OS中,您可以通过两种方式安装python依赖项:
- 使用apt安装预先配置的系统Python软件包。
- 创建虚拟环境,使用pip包管理工具安装软件包。
使用apt安装Python包
Bianbu OS中建议通过apt安装Python3的软件包,这些包通常是预编译的,因此安装速度更快。apt会管理所有软件包的依赖关系,安装时会包括运行该软件包所需的所有子依赖项。此外,apt确保在你卸载软件包时不会破坏其他软件包。 例如,要安装Python的科学计算库scipy,请运行以下命令:
sudo apt install python3-scipy
要查找使用apt发布的 Python 包,请使用apt search 。在大多数情况下,Python 包使用前缀python3- :例如,python3-numpy对应于Python的numpy包。
使用pip安装Python包
对pip安装的更改
在Bianbu OS 中,用户无法使用pip将库直接安装到系统版本的 Python 中。尝试在系统范围内使用pip安装 Python 包会输出类似于以下内容的错误:
➜ ~ pip install numpy
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.12/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
通过pip安装的软件包必须安装到 Python 虚拟环境( venv ) 中。虚拟环境是一个容器,您可以在其中安全地安装第三方模块,这样它们就不会干扰您的系统Python环境。
在虚拟环境中使用 pip
要使用虚拟环境,请创建一个容器来存储Python环境。您可以通过多种方法来完成此操作,具体取决于您想要使用 Python 的方式。这里以virtualenv工具为例,首先在系统的python环境安装virtualenv:
sudo apt install python3-virtualenv
运行以下命令创建虚拟环境配置文件夹(其中的 myenv 可以替换成任何您喜欢的名字):
virtualenv myenv
然后,执行虚拟环境配置文件夹中的bin/activate脚本,进入虚拟环境:
source myenv/bin/activate
然后您应该会看到类似于以下内容的提示:
(myenv) ➜ ~
pyenv命令提示符前缀表示当前终端会话位于名为 pyenv 虚拟环境中。 要检查您是否处于虚拟环境中,请使用 pip list 查看已安装软件包的列表:
(myenv) ➜ ~ pip list
Package Version
------- -------
pip 24.0
该列表应该比系统 Python 中安装的包列表短得多。您现在可以使用pip安全地安装软件包。在虚拟环境中使用pip安装的任何软件包都只会安装到该虚拟环境中。在虚拟环境中, python或python3命令会自动使用虚拟环境下的 Python 软件包,而不是系统环境的 Python包。 例如使用pip安装wheel包:
(myenv) ➜ ~ pip install wheel
Collecting wheel
Downloading wheel-0.44.0-py3-none-any.whl.metadata (2.3 kB)
Downloading wheel-0.44.0-py3-none-any.whl (67 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.1/67.1 kB 27.9 kB/s eta 0:00:00
Installing collected packages: wheel
Successfully installed wheel-0.44.0
您可以通过执行python3,然后import安装的模块来验证安装是否成功。
(myenv) ➜ ~ python3
Python 3.12.3 (main, Apr 10 2024, 05:33:47) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import wheel
您可以使用sys模块来验证当前的解释器路径是否符合预期:
>>> import sys
>>> print("当前Python解释器路径:", sys.executable)
当前Python解释器路径: /home/zq-card/myenv/bin/python3
使用 exit() 退出交互式模式:
>>> exit()
(myenv) ➜ ~
要离开虚拟环境,请运行以下命令:
(myenv) ➜ ~ deactivate
使用pyenv管理Python 版本
pyenv 是一个非常流行的 Python 版本管理工具,它允许您轻松地安装、管理和切换多个 Python 版本。您可以根据项目需要在不同的 Python 版本之间自由切换,下面介绍如何使用 pyenv 配置多个 Python 版本。
更多信息请参考pyenv官方教程
安装pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
配置shell环境
对于Zsh:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
对于Bash:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
安装多个 Python 版本
您可以执行以下命令安装多个python版本,这里以3.10.0为例,也可以指定如3.8.5等 Python 版本。
pyenv install 3.10.0
安装成功会出现如下显示:
Downloading Python-3.10.0.tar.xz...
-> https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tar.xz
Installing Python-3.10.0...
patching file aclocal.m4
patching file configure
Hunk #5 succeeded at 10537 (offset -15 lines).
patching file Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst
patching file configure
patching file configure.ac
Installed Python-3.10.0 to /home/zq/.pyenv/versions/3.10.0
输入pyenv versions 查看是否出现您安装的Python版本号:
➜ ~ pyenv versions
* system (set by /home/zq/.pyenv/version)
3.10.0
设置全局 Python 版本
您可以使用 pyenv global 来设置默认的 Python 版本。这会影响系统中所有终端使用的 Python 版本。 如果您使用的是Bash,请将.zshrc替换为.bashrc。
➜ ~ pyenv global 3.10.0
➜ ~ source ~/.zshrc
➜ ~ python3
Python 3.10.0 (default, Sep 13 2024, 20:53:06) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
再次输入 pyenv versions 您将看到python版本已经从system切换到3.10.0
➜ ~ pyenv versions
system
* 3.10.0 (set by /home/zq/.pyenv/version)
如果您想要切回系统的python,执行 pyenv global system
➜ ~ pyenv global system
➜ ~ source ~/.zshrc
➜ ~ python3
Python 3.12.3 (main, Apr 10 2024, 05:33:47) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
当您管理多个python版本时,可以通过 pyenv versions 轻松地查看它们并切换到对应的python版本。