关于虚拟环境的相关知识参考了Python虚拟环境使用教程这篇文章。
关于为什么要使用python虚拟环境来开发,其中最大一个原因是避免python项目之间的冲突,避免污染主机环境。比如不同项目之间可能需要的python的版本不同,安装的包的版本不同。
一、虚拟环境的创建方法(venv篇)
在开始之前,要讲一下,本篇内容参考了树莓派4B上多版本python切换(二)这篇文章。
首先需要在终端通过cd命令,进入相应的文件路径下。
值得注意的是,若在linux中也使用pycharm对文件进行编辑,则虚拟环境名称一定要为venv,不然pycharm无法识别。
1.1 创建虚拟环境:
'''这里我创建虚拟环境,取名为myvenv'''
python3 -m venv myvenv
1.2 激活虚拟环境:
'''格式就是 source 虚拟环境名/bin/activate'''
source myvenv/bin/activate
1.3 查看虚拟环境下的python包 :
pip list
1.4 查看虚拟环境下python解释器版本:
# 直接在终端的虚拟环境路径下输入 python
python
'''通过exit()指令退出'''
exit()
1.5 虚拟环境下安装python包:
# 这里以numpy为例
pip install numpy
这里在使用pip的时候,出现了一些问题,可以参考这篇文章的方法解决。
1.6 退出虚拟环境:
deactivate
具体流程如下所示:
关于pip报错内容,Installing build dependencies ... error呈上:
(myvenv) pi@raspberrypi:~/project_data/pycharm_data/Case_try/venv_try $ pip install numpy
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting numpy
Using cached https://files.pythonhosted.org/packages/45/b7/de7b8e67f2232c26af57c205aaad29fe17754f793404f59c8a730c7a191a/numpy-1.21.6.zip
Installing build dependencies ... error
Complete output from command /home/pi/project_data/pycharm_data/Case_try/venv_try/myvenv/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-kck6w4wf --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple -- "packaging==20.5; platform_machine=='arm64'" setuptools==59.2.0 wheel==0.37.0 Cython>=0.29.24,<3.0:
Ignoring packaging: markers 'platform_machine == "arm64"' don't match your environment
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple, https://www.piwheels.org/simple
Collecting setuptools==59.2.0
Using cached https://files.pythonhosted.org/packages/18/ad/ec41343a49a0371ea40daf37b1ba2c11333cdd121cb378161635d14b9750/setuptools-59.2.0-py3-none-any.whl
Collecting wheel==0.37.0
Downloading https://files.pythonhosted.org/packages/04/80/cad93b40262f5d09f6de82adbee452fd43cdff60830b56a74c5930f7e277/wheel-0.37.0-py2.py3-none-any.whl
Collecting Cython<3.0,>=0.29.24
Downloading https://www.piwheels.org/simple/cython/Cython-0.29.37-cp37-cp37m-linux_armv7l.whl (2.3MB)
THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
Cython<3.0,>=0.29.24 from https://www.piwheels.org/simple/cython/Cython-0.29.37-cp37-cp37m-linux_armv7l.whl#sha256=6a4090813754422c473f9a537dedde8ece298fec64cce78aa02e8aace127f966:
Expected sha256 6a4090813754422c473f9a537dedde8ece298fec64cce78aa02e8aace127f966
Got 6218c42940cc82150320e0adec0950a366df33a62084c58b0d27e62f1474adc1
----------------------------------------
Command "/home/pi/project_data/pycharm_data/Case_try/venv_try/myvenv/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-kck6w4wf --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --extra-index-url https://www.piwheels.org/simple -- "packaging==20.5; platform_machine=='arm64'" setuptools==59.2.0 wheel==0.37.0 Cython>=0.29.24,<3.0" failed with error code 1 in None
本人版本(2022)操作如下所示: