最近学习python,遇到有的功能网上查到是说python版本更新可能具有新的功能。所以查看到最新的python稳定版已经是python3.12了。于是就想安装,首先是在我的windows电脑上安装,在windows系统上安装是比较简单的。但是在linux系统安装,尤其是在deepin系统安装,网上的文章似乎不多。我参考了B站的视频及深度社区网友以及CSDN网站其他网友的安装,实际操作了,反复安装尝试,发现虽然有些能够安装,但是各有各的小毛病。
写本文的时候,没想到已经官网升级到python3.12.1了,还是以3.12.0为例吧。
tar -xvf Python-3.12.0.tar.xz
解压缩后就成为Python-3.12.0
解压缩用任何方式都可以,不一定非要命令行。在deepin用鼠标右键点击Python-3.12.0.tgz解压缩后成这样:
以下依赖需先安装,不然安装过程中会报错,以下依赖是经过验证不会安装报错的:
sudo apt-get install build-essential gdb lcov pkg-config libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev libncurses5-dev libreadline-dev libsqlite3-dev libssl-dev lzma lzma-dev tk-dev uuid-dev zlib1g-dev llvm xz-utils
我是把文件解压缩到Downloads文件夹,所以就:
#进入安装目录:
Light@Light-PC:~/Downloads/Python-3.12.0$
sudo ./configure prefix=/usr/local/python312 --enable-shared --enable-optimizations
需要注意,添加--enable-shared后,安装完成会提示找不到libpython3.12.so.1.0,但是如果不添加,在使用pyinstaller时会有问题,所以这个还是要加上。
make -j$(nproc)
此处注意,如果前面的安装前依赖有缺,此步会提示某些模块missing,一般会这样提示:
Checked 111 modules (31 built-in, 78 shared, 1 n/a on linux-x86_64, 0 disabled, 1 missing, 0 failed on import)
但如果在第一步中安装了本文提供的依赖,便不会出现缺模块的问题。
sudo make && make install
或者分两步:
sudo make
sudo make install
有网友说要用make altinstall,我没有尝试。
这一步完成后,最后的一段是这样的:
Installing collected packages: pip
WARNING: The scripts pip3 and pip3.12 are installed in '/usr/local/python312/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-23.2.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
在上一步的提示之后,开始修改默认路径
sudo vim /etc/profile
在打开的文件末尾加上路径:
如果不会用这个vim也没关系,如果能自己找到系统文件/etc/profile中的profile用文本编辑器打开也是可以的。如下图:
修改后注销登录,这一步我是参考B站视频里的步骤,不知道为什么这样做。
执行完第5步后,在终端输入python3会出现以下提示:
Light@Light-PC:~$ python3
python3: error while loading shared libraries: libpython3.12.so.1.0: cannot open shared object file: No such file or directory
修改路径,用以下命令:
sudo vim /etc/ld.so.conf
保存退出 后,终端运行:
ldconfig
至此,再次终端输入python3就不会有错误提示了。
将/usr/bin/python指向python3.12
sudo ln -snf /usr/local/python312/bin/python3 /usr/bin/python3
python3 -m pip install --upgrade pip
升级后出现以下提示:
WARNING: The scripts pip, pip3 and pip3.12 are installed in '/home/Light/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-23.3.1
[notice] A new release of pip is available: 23.2.1 -> 23.3.1
[notice] To update, run: pip3 install --upgrade pip
进入系统盘-home-主目录,查看
sudo vim ~/.bashrc
打开的文件末尾
在fi后输入o,换行,输入以下,然后":wq"退出。
export PATH="/home/Light/.local/bin/:$PATH"
注意,此处的路径输入,是上文8.1中pip升级后弹出的提示中路径,复制到这里而已。
source ~/.bashrc
pip3 install --upgrade setuptools
安装完毕后是这样的:
Light@Light-PC:~$ python3
Python 3.12.0 (main, Dec 10 2023, 13:42:22) [GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
Light@Light-PC:~$ python
Python 2.7.16 (default, Oct 9 2022, 08:54:49)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
Light@Light-PC:~$ cd /usr/bin
Light@Light-PC:/usr/bin$ ls -l python*
lrwxrwxrwx 1 root root 7 3月 4 2019 python -> python2
lrwxrwxrwx 1 root root 9 3月 4 2019 python2 -> python2.7
-rwxr-xr-x 1 root root 3423088 10月 9 2022 python2.7
lrwxrwxrwx 1 root root 32 12月 10 14:00 python3 -> /usr/local/python312/bin/python3
-rwxr-xr-x 2 root root 4877856 11月 1 2022 python3.7
-rwxr-xr-x 2 root root 4877856 11月 1 2022 python3.7m
lrwxrwxrwx 1 root root 10 3月 26 2019 python3m -> python3.7m
试用一下:
之前安装pyinstaller后打包dist文件夹中空的,按照以上安装流程后,成功打包。
本人属于初学者,以上都是网上学来的。如果有错误地方,请各位看官不吝指正。