Python环境设置

起因

前一段时间,我的Ubuntu冲装了,换成了Kubuntu。其实我挺喜欢Ubuntu的Gnome桌面风格。但是Gnome桌面没办法点击状态栏的微信图标打开微信。

这就导致不限信点了右上角的叉号之后,只能退出应用重新打开,特别考验耐心,非常不便。若是平常不常用我就忍了,但是现在公司沟通工作主要使用微信,发现很多时候着急,却打不开微信,无奈求变。切换Ubuntu有两种方式,我均体验了。

第一种是基于Ubuntu安装KDE桌面环境,发现兼容性会有一些问题,导致很多时候两个桌面环境有冲突,并且最主要的问题是启动非常慢。

第二种是安装Kubuntu系统,我最终采用第二种并且到现在为止体验一切正常。

今天记录一下我重装系统后编译同文输入法代码遇到的一个问题,其实问题比较简单,但是不熟悉Python与Linux编程,导致走了很多弯路,浪费了将近一周的时间,同时不确定是环境问题还是代码问题,多次重装Android sdk、cmake、python,多次从Github上拉取庞大的代码。这次记录一下,以后不再重复走同样的弯路。

过程

首先前提是Android Studio、Android SDK均已安装完成,我自己的Android项目已经正常运行及编写。在调试Rime时,发现不区分大小写。那么其他使用Rime引擎的输入法是否支持呢?是使用问题还是引擎不兼容?要确认这个问题就需要运行一下同文输入法看看。

此时我打开系统安装之前备份的同文输入法项目,在编译运行时,提示:

CMake Error at /usr/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)

首先怀疑是没有安装Python导致的,控制台我检查Python安装情况:

gure@gure-tm1701:~$ python
python3            python3.12   
gure@gure-tm1701:~$ python --version
Python 3.12.3

看输出Python是安装的。
继续猜测,可能是CMake的问题,到Android SDK中,卸载cmake-3.23,然后重新下载,发现问题依旧。

继续猜测,可能是Python环境不对,那么重装Python环境,发现python3.12 无法卸载,就安装了Python的其他版本,发现问题依旧。

继续猜测,可能是项目代码的问题,怀疑在原系统备份时,遗漏了配置文件,那么删除项目源码,从Github重新下载最新版本。重新编译发现问题依旧。

继续尝试,卸载Android Studio、重装,包括Android SDK重新下载,重新编译问题依旧。

此时回过头来重新捋一下问题,同时在项目里搜索相关错误信息,发现在指导文件中有描述:

Make sure you have Python installed, as some of Google Test's tests are written
in Python. If the cmake command complains about not being able to find Python
(`Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)`), try telling it
explicitly where your Python executable can be found:

cmake -DPYTHON_EXECUTABLE=path/to/python ...

显示,首先确保安装了Python,如果还有这个错误,就是环境变量的问题。按照提示在CMakeLists.txt对应路径下执行命令,添加DPYTHON_EXECUTABLE配置,发现还是不行,可能是指定的路径不对。

最终如何解决呢?

因为是环境配置的问题,那么我将Python配置到系统变量里不就行了。Python支持多版本共存及多版本切换能力,那么我将Python版本设置一下是否可行:

gure@gure-tm1701:~$ sudo update-alternatives --list python
/usr/bin/python3.12
gure@gure-tm1701:~$ sudo update-alternatives --config python 
有 1 个候选项可用于替换 python (提供 /usr/bin/python)。

  选择       路径               优先级  状态
------------------------------------------------------------
* 0            /usr/bin/python3.12   1         自动模式
  1            /usr/bin/python3.12   1         手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:0
gure@gure-tm1701:~$ 

通过命令设置后,发现可以直接执行Python命令:

gure@gure-tm1701:~$ python --version
Python 3.12.3

此时重新编译项目就可以了。

总结

当前最新Python版本是3.12,由于Python支持多版本共存和切换,直接安装Python后,执行命令需要携带版本号。比如安装了Python 3.12,执行命令需要使用:python3 --version,此时需要创建python和指定版本的链接关联,可以使用update-alternatives命令来解决,实现多版本管理。


   转载规则


《Python环境设置》 gure 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
双系统时间同步问题 双系统时间同步问题
背景双系统切换使用过程中,会遇到时间不同步的情况。 一般来说非主要系统时间错乱不影响功能,但是我使用VPN的过程中发现需要校正时间后才能正常连接,导致每次切换系统均需要手动关闭联网更新时间、然后重新打开,以实现时间更新功能。 这玩意虽然不复
2024-07-30
下一篇 
手机丢失教训 手机丢失教训
迷糊的一瞬间,任何失误都有可能发生。 下班正在地铁上,突然精神不振,想倒头就睡,距离目的地还剩2站,就闭眼迷糊两分钟。后来我拿着手机、NFC刷卡走出地铁站,然后木然的坐电梯出站、骑电动车往家赶。 仅仅走了500米,忽然发现手机不在口袋里,也
2024-07-22
  目录