linux与python环境配置问题
linux与python环境配置问题
目录- linux与python环境配置问题
- python的安装与版本问题
- python版本问题
- 第一步,特定版本python的安装
- 第二步,pip3的卸载方法
- 第三步,进行版本绑定
- 第四步,pip3的更新方法
- 环境的建立
- 环境的激活
- 环境的退出
- 安装失败集锦
- 安装pip Command '('lsb_release', '-a')' 出错
- python的安装与版本问题
- 无法链接remote
作为一个刚刚开始使用python的小白,很多流程与操作只能是照搬,无法理解其中的原因。在经历了最初的迷茫之后,慢慢的理解了一些逻辑,记在这里,一个是帮助自己记忆,一个是幻想着万一哪天能帮助到一些人
注:本人使用的是ubuntu版本的linux环境
python的安装与版本问题
python版本问题
一般在Linux中,python包的安装位置是/usr/bin
,里面可能包含着好几个版本的python,比如一般系统默认的python 2.7(虽然很少用,但是不能卸载,是很多文件的必须语言),而在日常的工作中我们需要使用很多个不同版本的python,这就会引出一些问题,比如pip和dist-packages问题
pip是python自带的安装程序,因此它是绑定在自己版本的python下的,进而在使用pip命令进行包的安装时,它会自动将pachages安装在自己版本的dist-packages里面,而这种package无法被别的版本的python调用。
举个例子,如果原本默认版本是python3.6,而新安装了python 3.8。如果不卸载pip,重新安装的话,默认的pip是绑定着3.6的,使用pip3 install
命令安装的包会被安装到python 3.6下面,因为无法调用,自然会报错如下
# ksb @ B705-TitanV in ~/bishe_code [13:29:51]
$ /usr/bin/python3 /data/ksb/bishe_code/run_train.py
Traceback (most recent call last):
File "/data/ksb/bishe_code/run_train.py", line 18, in
from visdom import Visdom
ModuleNotFoundError: No module named 'visdomd'
可以使用下面的命令对目前的package目录进行检查
$ python -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())"
得到的答案如下
>> /usr/lib/python3.6/dist-packages
当然,更加离谱的错误方式是,错误的使用了pip
而不是pip3
进行安装(小白的痛)。所有一定要记得分清python3,python还有pip,pip3!!!
前面讲到过,python一般link的是系统默认版本python2.7,而python3一般link的是用户自己安装的python3.x。如果希望更改相关的link,具体更改方式(以改绑python3为例)请见下面的详细教程
第一步,特定版本python的安装
下面列举了几种网上查到的方法
- 简单版本
#以root用户或具有sudo访问权限的用户身份运行以下命令,以更新软件包列表并安装必备组件:
sudo apt update
sudo apt install software-properties-common
#将Deadsnakes PPA添加到系统的来源列表中:
sudo add-apt-repository ppa:deadsnakes/ppa
#启用存储库后,请使用以下命令安装Python 3.8:
sudo apt install python3.8
#通过键入以下命令验证安装是否成功:
python3.8 --version
- 应该可以,,,我也记不得了QAQ
#更新软件包列表并安装构建Python所需的软件包:
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
#使用wget从Python下载页面下载最新版本的源代码,或者访问 https://www.python.org/ 网站下载:
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
#在选写本文时,最新版本是3.8.0。
#下载完成后,解压缩下载的文件:
tar -xf Python-3.8.0.tgz
#切换到Python源目录并执行configure脚本,该脚本执行许多检查以确保系统上的所有依赖项都存在:
cd Python-3.8.0
./configure --enable-optimizations
--enable-optimizations选项通过运行多个测试来优化Python二进制文件,这会使构建过程变慢。
#启动Python 3.8构建过程:
make -j 8
#为了加快构建时间,请修改-j以使其对应于处理器中的内核数,你可以通过键入nproc查找编号。
#构建过程完成后,输入以下命令安装Python二进制文件:
sudo make altinstall
#不要使用标准的make install,因为它将覆盖默认的系统python3二进制文件。
#Python 3.8已安装并准备使用,通过运行以下命令进行验证:
python3.8 --version
#输出应显示Python版本:
第二步,pip3的卸载方法
不更新pip3
的话,在更改link以后肯定是用不了!QAQ,在通过python --version
python3 --version
确认了你的python/python3
已经绑定为想要的版本以后,请输入
python3 -m pip uninstall pip
sudo apt-get remove python-pip python-pip
将pip
进行卸载,一定要卸干净,否则pip
还是link到原有版本的,你用新版本python
去调用`pip1肯定不好使!
第三步,进行版本绑定
#删除bin下面的python二进制文件,具体是python3还是python根据你的需求改变
$ sudo rm /usr/bin/python3
#将想要的python版本链接为python3/python
$ sudo ln -s /usr/bin/python3.6 /usr/bin/python3
在更改完毕之后可以通过python --version
或者python3 --version
来查询是否成功更改
类似的命令还有where python
where python3
来检查目前python地址
第四步,pip3的更新方法
卸载干净以后,再进行pip的安装
wget https://bootstrap.pypa.io/get-pip.py #需要外网
python get-pip.py
python3 get-pip.py #安装python3的pip
环境的建立
mkdir python38
python3 -m venv python38
有时可能会无法创造,因为没有更新venv的包
sudo apt-get install python3.8-venv#更改为自己要用的那个版本号!
即可创建名为python38
的虚拟空间,空间使用的python
版本为python3
link到的版本
环境的激活
source /data/ksb/bishe_code/python38/bin/activate
当上面显示一个小括号的时候就说明你成功进入虚拟环境了!
环境的退出
deactivate
安装失败集锦
安装pip Command '('lsb_release', '-a')' 出错
参考博文
找不到lsb_release模块,执行如下命令(具体的路径需要根据系统进行调整!不能直接复制)
sudo cp /usr/share/pyshared/lsb_release.py /usr/local/python3/lib/python3.7/
无法链接remote
也不知道发生了肾么事情,第二天来公司就连不上了emmm,试着重新配置了ssh,config,重启都失败了。最后重装了一下vscode,终于log中出现了有用的信息Error: Running the contributed command: '_workbench.downloadResource' failed
,根据信息找到了参考博客,成功解决问题