在最新版树莓派运行python注意事项

https://www.raspberrypi.com/documentation/computers/os.html#python-on-raspberry-pi

在虚拟环境中使用pip

要使用虚拟环境,您需要做的第一件事就是创建一个容器来存储环境。有几种方法可以做到这一点,这取决于你想如何使用Python。

为每个项目使用单独的环境

您可以继续进行的一种方法是为您制作的每个Python项目创建一个新的虚拟环境,在这里,您将创建一个目录来保存您自己的代码以及一个虚拟环境目录,

$ mkdir my_project
$ cd my_project
$ python -m venv env
如果您现在查看my_project目录,您将看到一个名为env的目录。

$ ls -la
total 12
drwxr-xr-x  3 pi pi 4096 Oct  3 14:34 .
drwx------ 20 pi pi 4096 Oct  3 14:34 ..
drwxr-xr-x  5 pi pi 4096 Oct  3 14:34 env
$
笔记
如果您想从系统Python继承当前安装的软件包,您应该使用python -m venv --system-site-packages env创建虚拟环境。
这个目录里面是一个完整的Python发行版。要激活您的虚拟环境并使该版本的Python成为您当前正在使用的版本,您应该键入,

$ source env/bin/activate
(env) $
您将看到您的提示符现在以(env)为前置,以表明您不再使用系统Python。相反,您使用的是虚拟环境中包含的Python版本。您在这里所做的任何更改,或您安装到环境中的模块,都不会对您的系统Python造成问题。

(env) $ which python
/home/pi/my_project/env/bin/python
如果我们继续安装第三方软件包,它将安装到我们虚拟环境中的Python发行版中,

(env) $ pip install buildhat
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting buildhat
  Downloading https://www.piwheels.org/simple/buildhat/buildhat-0.5.12-py3-none-any.whl (57 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.8/57.8 kB 2.8 MB/s eta 0:00:00
Collecting gpiozero
  Downloading https://www.piwheels.org/simple/gpiozero/gpiozero-2.0-py3-none-any.whl (150 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 150.5/150.5 kB 6.9 MB/s eta 0:00:00
Collecting pyserial
  Downloading https://www.piwheels.org/simple/pyserial/pyserial-3.5-py2.py3-none-any.whl (90 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.6/90.6 kB 7.5 MB/s eta 0:00:00
Collecting colorzero
  Downloading https://www.piwheels.org/simple/colorzero/colorzero-2.0-py2.py3-none-any.whl (26 kB)
Requirement already satisfied: setuptools in ./env/lib/python3.11/site-packages (from colorzero->gpiozero->buildhat) (66.1.1)
Installing collected packages: pyserial, colorzero, gpiozero, buildhat
Successfully installed buildhat-0.5.12 colorzero-2.0 gpiozero-2.0 pyserial-3.5
(env) $
如果你pip list,你会看到你当前版本的Python有你的新模块

(env) $ pip list
Package    Version
---------- -------
buildhat   0.5.12
colorzero  2.0
gpiozero   2.0
pip        23.0.1
pyserial   3.5
setuptools 66.1.1
编写代码后,您可以正常调用Python,从虚拟环境中的命令行运行它。

(env) $ ls -la
total 12
drwxr-xr-x  3 pi pi 4096 Oct  3 14:34 .
drwx------ 20 pi pi 4096 Oct  3 14:34 ..
drwxr-xr-x  5 pi pi 4096 Oct  3 14:34 env
-rw-r--r--  1 pi pi    0 Oct  3 14:45 my_code.py
(env) $ python my_code.py
Hello World!
(env) $
您可以通过键入离开虚拟环境并返回使用系统Python,

(env) $ deactivate
$
通过使用pip list检查已安装的软件包,向自己证明你已经这样做了。你会发现有相当大的区别!

为每个用户使用单独的环境

为每个Python项目创建虚拟环境的另一种方法是为您的用户帐户创建单个虚拟环境,然后在运行任何Python代码之前激活该环境。如果您通常为每个项目安装相同的模块集,并且不想费心为每个项目创建单独的Python环境,基本上只是复制您的环境,那么这种方法可能是首选。

$ python -m venv ~/.env
$ source ~/.env/bin/activate
(.env) $
我们可以通过使用pip list再次检查我们是否在单独的环境中,

(.env) $ pip list
Package    Version
---------- -------
pip        23.0.1
setuptools 66.1.1
并让它使用deactivate。

(.env) $ deactivate
$