【Ubuntu】【pyenv】【python】基于pyenv的python版本管理模式下,对于特定python版本开发环境的要求下相关设置_ubuntu pyenv
一、简介
最近,在基于w800开发板环境下的学习过程中,由于在Windows下使用联盛VSCode+SDK,或者win下的命令行ide环境中的编译速度实在不尽如人意,于是笔者就开始转战Ubuntu下的联盛德提供的Linux环境配置,但是由于笔者之前搞了其他的环境,于是就用到了pyenv来管理python版本。但是,由于这个pyenv的python与Ubuntu系统自带的python3有时会冲突,有些时候使用SDK会默认使用系统自带的python导致编译不过,在此记录一些解决方法。
WM IoT SDK 编程指南 — WinnerMicro 在线文档
二、相关设置
部分命令:
## 查看帮助文档pyenv## 查看某个命令帮助文档pyenv install --help## 查看版本pyenv version## 检查 Python 是否正常运行python -c \"import sys; print(sys.executable)\"## 查看已安装的 Python 版本pyenv versions## 查看当前使用的 Python 版本pyenv version## 查看所有可用的 Python 版pyenv install --list ## 安装指定版本pyenv install 3.9.1## 验证python --version## 卸载指定版本pyenv uninstall 3.9.1## 全局指定 Python 版本(影响所有项目)pyenv global 3.9.1 ## 局部指定 Python 版本(仅影响当前项目目录),指定后在当前项目目录内创建 .python-version 文件,保存版本信息## 优先级高于 globalpyenv local 3.9.1## 会话级指定 Python 版本(影响所有项目)pyenv shell 3.9.1 ## 查看 python 的安装目录pyenv which python## 重新生成 pyenv 的 shims 目录中的可执行文件pyenv rehash
2.1 对于pyenv的下载缓慢问题
2.1.1 常用方法
(1)查看pyenv已经安装的版本
(2)列出所有可以安装的版本,有普通的python,还有anaconda、jython
pyenv install --list
(3)另辟蹊径,按住ctrl键点击这个网址打开去手动进入网页下载
有些时候会卡在这里
(4)找到你安装的pyenv的本体的文件夹所在的地方,在/pyenv/下创建一个cache文件夹,这其实就是缓存文件夹,将你在网页下载的python包放在cache文件夹下,然后,后面就在使用命令行
pyenv install 版本号
安装在网页下载的python包对应的版本,实际上它pyenv内部会检出cache文件夹内的python包缓存,就不用再使用http拉取了,会直接解压cache文件夹内的python包,然后导入到你的pyenv内部
(5)放入cache文件夹
(5)输入指令重新安装,如果要指定修改镜像源需要.pyenv添加文件,但是笔者用的其他方式安装的pyenv就不用这个方法了,可以看看其他文章
pyenv install 版本号
注:可以指定镜像网站下载到cache文件夹
#wget https://mirrors.huaweicloud.com/python/${v}/Python-${v}.tar.xz -P ~/.pyenv/cache/wget https://mirrors.huaweicloud.com/python/3.9.0/Python-3.9.0.tar.xz -P ~/.pyenv/cache/
2.2 对于Ubuntu的命令环境下的WM IoT SDK
Linux 搭建命令行编译环境 — WinnerMicro 在线文档
根据文档的步骤一步步部署就可以了,但是其中,有些需要注意的地方,在这里会指出来。
2.2.1 根据2.1.1来,pyenv安装python3.8.10
其他的正常使用apt/apt-get安装
注:这里使用的apt安装的工具就不用添加环境变量了
同时,激活一下变成全局的配置
pyenv global 版本号
2.2.2 由上一步安装了pyenv的python3.8.10,然后,我们的目标是使用pyenv的python3.8.10,所以要指定使用pyenv的python3.8.10来安装这个SDK运行需要的python3.8.10的依赖工具环境。全局的pyenv的python3.8.10的配置后面说。
#requirements.txt里是WM SDK需要的有些依赖工具包/home/zky/Pyenv/pyenv/versions/3.8.10/bin/python -m pip install --user --break-system-packages -r /home/wm/wm_iot_sdk/tools/wm/requirements.txt
sudo apt-get install python-tk
2.2.3 将pyenv的python3.8.10配置为全局,这样子SDK的wm.py就不会调用ubuntu的默认的系统python3,需要编写~/.bashrc里面添加环境变量路径(像windows的path一样)
(1)向.bashrc里添加
使用笔记本打开或者vim打开.bashrc编辑
#设置 WM IoT SDK 路径(替换为你的SDK实际路径)这个SDK作为Linux里的命令行环境#vscode的wmsdk插件可以使用其他SDK#你的SDK实际存放路径export WM_IOT_SDK_PATH=/home/zky/SoftwaresHub/wm/wm_iot_sdk_v2_4/wm_iot_sdk # 将 wm.py 工具添加到环境变量export PATH=$WM_IOT_SDK_PATH/tools/wm:$PATH#pyenv python 路径export PYENV_ROOT=\"$HOME/Pyenv/pyenv\" export PATH=\"$PYENV_ROOT/bin:$PATH\"# 如果你的shell是bash,请启用下面的命令 if [ -d \"$PYENV_ROOT/shims\" ]; then export PATH=\"$PYENV_ROOT/shims:$PATH\" fi # 初始化pyenv(对于bash shell) eval \"$(pyenv init --path)\" eval \"$(pyenv init -)\"export PATH=/home/zky/Pyenv/pyenv/shims/python:$PATH
(2)同时,还有2个工具的环境变量
#ccache工具提升编译速度 可能对于系统文件下的.ccache没有读写权限export CCACHE_DIR=$HOME/.ccache#export CCACHE_DIR=~/.ccache#csky-elfabiv2-tools-x86_64-minilibc-20210423export PATH=/home/zky/SoftwaresHub/wm/tools/csky-elfabiv2-tools-x86_64-minilibc-20210423/bin:$PATH
调试工具需要单独配置,这里暂时不演示了
T-Head_Debugger_Server_User_Guide_ZH-CN.pdf
(3)保存编辑内容,并重启.bashrc
source ~/.bashrc
然后就可以查看这个全局的python,而不是系统的/usr/bin/python
(4)最好在命令环境下的sdk里wm.py脚本的第1行指定一下pyenv的python3.8.10
(5)缺模块就自己加,最好显示指定用pyenv的python安装py工具什么的
参考链接:
python多版本管理器--pyenv更换下载源_pyenv换源-CSDN博客
【Ubuntu】安装使用pyenv - Python版本管理_ubuntu安装pyenv-CSDN博客
【Pyenv 更换国内源】_pyenv 国内源-CSDN博客