最近把Ubuntu18.04的python升级到python3.9之后发现terminal无法打开了。搜索了一下,是gnome-terminal只能使用3.6(含)之前的版本。最简单的办法是用update-alternatives把python3修改成python3.6(不用修改python,这是两个不同的东西,有的程序会使用python,因为它在Ubuntu18.04里默认是2.7,另外一些程序会使用python3来明确的说明版本要求)。但是我不希望系统的python3版本太低,因为有些程序它要求比较高的版本。搜索了一下,发现这里有比较好的解决方法,那就是修改/usr/bin/gnome-terminal,修改第一行:
#!/usr/bin/python3
改为:
#!/usr/bin/python3.6
就可以了,这样terminal使用python3.6,而系统的python3指向新版本的python。
另外一个问题就是如果输入一个不存在的命令,会出现奇怪的错误:
$ abcd
$ abcd
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 27, in <module>
from CommandNotFound.util import crash_guard
ModuleNotFoundError: No module named 'CommandNotFound'
通过搜索,找到这个问题。原因还是因为python3从3.6升级带来的,只需要修改/usr/lib/command-not-found,把
#!/usr/bin/python3
改成
#!/usr/bin/python3.6
看起来Ubuntu的terminal是和特点版本的python绑定的,如果升级了python的版本,可能带来很多问题。如果发现了问题,一般都可以通过shell脚本的#!来解决。当然如果把python3指向python3.6就不会有任何问题了。
- 显示Disqus评论(需要科学上网)
FEATURED TAGS
人工智能
深度学习
chatbot
PyTorch
Java
BERT
git
编程
OCR
汪曾祺
语音识别
Kaldi
Linux
XLNet
情感分析
sentiment analysis
语法纠错
Transformer
Tensorflow
Huggingface
Ubuntu
TensorFlow
深度学习框架
Tensor2Tensor
机器翻译
微信
wechat
automation
selenium
webdriver
pywinauto
CentOS
GPU
Appium
t2t
代码阅读
中英翻译
公众号
爬虫
ocr
tesseract
pytesseract
python
默认参数
位置参数
VPN
JSON
Jackson
huggingface
PagedAttention
vLLM
Pre-training
LLM
CPT
weather
forecasting
graph neural networks
qlora
quantization
transformers
cmake
pip
pipenv
conda
padding
vscode
debug
source code
build
deep learning
Speech
ASR
linux
pytorch
extension
Deep Learning