2025年5月

在Linux系统上编译多个Python版本可按以下步骤进行:

安装依赖

  • 对于Ubuntu系统,执行 sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget 命令安装编译所需的依赖库。
  • 对于CentOS系统,执行 sudo yum install gcc zlib - devel bzip2 - devel openssl - devel ncurses - devel sqlite - devel readline - devel tk - devel gdbm - devel db4 - devel libpcap - devel xz - devel 命令安装相关依赖。

下载Python源码

  • 访问Python官方网站,选择要编译的多个Python版本的源码并下载。

编译安装

  • 以Python 3.7.12和Python 3.11.4为例,先解压Python 3.7.12的源码包,进入解压后的目录,执行 ./configure --prefix=/usr/local/python37 命令进行配置,指定安装路径。接着执行 make && make install 命令进行编译和安装。
  • 同样地,解压Python 3.11.4的源码包,进入目录后执行 ./configure --prefix=/usr/local/python311 命令配置,然后执行 make && make install 完成编译安装。

环境配置

  • 为了方便使用不同版本的Python,可在 ~/.bashrc 或 ~/.zshrc 文件中添加以下内容:

bash

export PATH=/usr/local/python37/bin:$PATH
alias python37=/usr/local/python37/bin/python3.7
export PATH=/usr/local/python311/bin:$PATH
alias python311=/usr/local/python311/bin/python3.11
 

  • 保存文件后,执行 source ~/.bashrc 或 source ~/.zshrc 使配置生效。

这样就可以在Linux系统上成功编译并使用多个Python版本了,通过 python37 和 python311 等命令来分别调用不同的版本。

自己安装编译python不同的版本

有价值文章:https://blog.csdn.net/h0300/article/details/126702035Linux下编译安装python

创建虚拟环境

生成一个Python虚拟环境

1mkdir -p $HOME/.env && python3 -m venv $HOME/.env/project_name

现在,您将看到一个.env在您的主目录中,并且在 .env 中,您将拥有项目目录。

每个虚拟环境项目目录中都会有自己的 Python 和 Pip 副本。

pip install --upgrade wheel

安装模块,如

$HOME/.env/project_name/bin/python -m pip install --upgrade pip
$HOME/.env/project_name/bin/python -m pip install --upgrade setuptools wheel
$HOME/.env/project_name/bin/python -m pip install playsound
$HOME/.env/project_name/bin/python -m pip install schedule

用新的虚拟环境执行py文件

1、source $HOME/.env/project_name/bin/activate
2、$HOME/.env/project_name/bin/python ./demo.py`

常见错误

when I request using "playsound" library for Python to play the audio file .mp3 it returns me the following error:

Code:

import playsound

playsound.playsound("test.mp3")
Error:

Traceback (most recent call last):
File "/home/enzoportela/PycharmProjects/SoftwareRover2018.2/SoftRover/I.A Rover(2018.2).py", line 25, in

playsound.playsound("test.mp3")

File "/home/enzoportela/anaconda3/envs/SoftwareRover2018.2/lib/python3.6 /site-packages/playsound.py", line 91, in _playsoundNix

import gi

ModuleNotFoundError: No module named 'gi' | |
| |
The most simple way is the vext approach.
pip install vext
pip install vext.gi
Reference: How do I install python3-gi within virtual | |

解决方案:https://www.yaolong.net/article/pip-externally-managed-environment/介绍比较全面

关于虚拟环境的使用参考:https://blog.51cto.com/u_16213456/7511357

参考文章:Armbian系列教程-搭建24h无人值守音乐台(https://xuan-ming.github.io/2020/06/03/Armbian教程二/

参考文章:把机顶盒(数码视讯Q5)打造成Upnp_Dlna播放器---进阶篇 [[复制链接]](http://www.erji.net/forum.php?mod=viewthread&tid=2320022)(http://www.erji.net/forum.php?mod=viewthread&tid=2320022

有价值文章:https://blog.51cto.com/u_16175461/6863758

有价值文章:https://www.cnblogs.com/doublexi/p/15783355.htmlpython多环境管理(venv与virtualenv)

在Linux系统上编译多个Python版本可按以下步骤进行:

安装依赖

  • 对于Ubuntu系统,执行 sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget 命令安装编译所需的依赖库。
  • 对于CentOS系统,执行 sudo yum install gcc zlib - devel bzip2 - devel openssl - devel ncurses - devel sqlite - devel readline - devel tk - devel gdbm - devel db4 - devel libpcap - devel xz - devel 命令安装相关依赖。

下载Python源码

  • 访问Python官方网站,选择要编译的多个Python版本的源码并下载。

编译安装

  • 以Python 3.7.12和Python 3.11.4为例,先解压Python 3.7.12的源码包,进入解压后的目录,执行 ./configure --prefix=/usr/local/python37 命令进行配置,指定安装路径。接着执行 make && make install 命令进行编译和安装。
  • 同样地,解压Python 3.11.4的源码包,进入目录后执行 ./configure --prefix=/usr/local/python311 命令配置,然后执行 make && make install 完成编译安装。

环境配置

  • 为了方便使用不同版本的Python,可在 ~/.bashrc 或 ~/.zshrc 文件中添加以下内容:

bash

export PATH=/usr/local/python37/bin:$PATH
alias python37=/usr/local/python37/bin/python3.7
export PATH=/usr/local/python311/bin:$PATH
alias python311=/usr/local/python311/bin/python3.11
 

  • 保存文件后,执行 source ~/.bashrc 或 source ~/.zshrc 使配置生效。

这样就可以在Linux系统上成功编译并使用多个Python版本了,通过 python37 和 python311 等命令来分别调用不同的版本。

1、安装nginx

输入apt-get -y install nginx回车

apt-get -y install nginx
然后就安装成功了

输入玩客云ip地址我这里是:10.0.0.109

2、安装php最新版的armbian包24.5默认安装的是php8.2

复制回车远行,然后等

apt install -y php php-fpm php-mysql php-gd php-curl php-mbstring php-xml php-xmlrpc php-json php-zip php-intl php-xsl

php -v查询版本号

3、安装Mariadb

apt install -y mariadb-server
mysql -v查询版本号

4.配置环境

4.1配置nginx

首先输入vim /etc/nginx/sites-enabled/default,打开nginx配置文件

vim /etc/nginx/sites-enabled/default
在44行前面添加index.php,56行57行和60行以及63行去除行头#号(注意这里的默认的php7.4要改为php8.2)注意这里如果用putty登录修改会出错,可能是编码的问题。

输入nginx -t

root@aml-s812:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
表示没有问题

重新启动nginx

service nginx restart
新建测试页面文件(后面记得删除)

echo "<?php phpinfo(); ?>">/var/www/html/info.php
浏览器打开ip/info.php

就可以看到php的相关信息了

4.2配置Mariadb
4.2.1安全设置
输入mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

  • In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank,so you should just press enter here.
    Enter current password for root (enter for none):
    注意:建议所有人都运行此脚本的所有部分服务器在生产中使用!请仔细阅读每一步!为了登录MariaDB以确保其安全,我们需要当前根用户的密码。如果你刚刚安装了MariaDB您尚未设置根密码,密码将为空,所以你应该在这里按回车键。输入root用户的当前密码(输入无):我们刚刚安装,没有密码直接回车
  • Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation.You already have a root password set, so you can safely answer 'n'.Change the root password? [Y/n]
    设置root密码可以确保任何人都无法登录MariaDB未经适当授权的root用户。您已经设置了根密码,因此可以安全地回答“n”。
    更改根密码?[是/否]
    输入y设置一个简单而且你记得住密码 我这里是P@ssW0
  • By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.Remove anonymous users? [Y/n]
    默认情况下,MariaDB安装有匿名用户,允许任何人登录MariaDB而无需为其创建用户帐户他们这仅用于测试和安装再平稳一点。你应该在搬进公寓前把它们取下来生产环境。
    删除匿名用户?[是/否]
    y 删除就完了
  • Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n]
    通常,root用户只能从“localhost”连接。这确保有人无法从网络中猜到根密码。
    不允许根用户远程登录?[是/否]
    n方便修改
  • By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.Remove test database and access to it? [Y/n]
    默认情况下,MariaDB附带一个名为“test”的数据库,任何人都可以使用通道这也仅用于测试,应移除在进入生产环境之前。
    删除测试数据库并访问它?[是/否]
    n没有用直接删除
  • Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
    Reload privilege tables now? [Y/n]
    重新加载特权表将确保迄今为止所做的所有更改将立即生效。
    现在重新加载特权表吗?[是/否]
    y

4.2.2 账户设置

  • 直接输入mysql直接登录
    mysql
  • 查询用户表
    select User,host from mysql.user;
  • 使用mysql数据库
    use mysql;
    GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    添加一个可以从任何地址登录的root账户密码建议复杂一点
    mysql用户想连到mysql,需要使用grant命令给用户授权,有一个简单的办法,可以使用grant ALL privileges 命令给用户授予所有权限, 你想myuser使用mypassword从任何主机连接到mysql服务器的话。
    主要使用:GRANT ALL PRIVILEGES ON . to 'root'@'%'; 命令授权.
  • -grant给root使用root密码从任何主机连接到mysql服务器。
    GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
  • -或者
    GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root';
    FLUSH PRIVILEGES;
  • -grant给root用户授予操作mysql所有数据库的所有权限

文链接:h[ttps://blog.csdn.net/weixin_32848231/article/details/113902462](https://blog.csdn.net/weixin_32848231/article/details/113902462)

ALTER USER 'root'@'%' IDENTIFIED BY '6166b2002fdcb5df';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssW0rd';
update user set plugin = 'mysql_native_password' where user = 'root';

flush privileges;

5、自动挂载u盘,把typecho安装到u盘

修改/etc/rc.local添加挂载u盘命令,给该文件执行权限。

6、nginx修改web目录到u盘目录

nano /etc/nginx/sites-enabled/default,打开nginx配置文件

修改server块为:

root /mnt/sda/web/typecho;

挂在u盘时需要更改U盘的系统文件格式为ext4,否则不支持修改权限

重新加载Nginx配置以使更改生效,通常使用以下命令:sudo nginx -s reload

或者重启Nginx服务:sudo systemctl reload nginx

或者在不同的系统中:sudo service nginx reload

7、安装typecho

8、安装过程出错,问题解决:

8.1、安装程序时无法连接数据库

在把程序放到目录下,进行安装的时候,将数据库的密码输入正确后,无法进行安装

这个时候处理方式就是手动创建一个typecho的数据库即可解决

8.2、无法登录后台

Nginx服务器点击前台链接或者后台登录时出现404, not found

官方给的解决方式是一般的出现这种情况时,nginx.conf里的location设置都是类似这样

location ~ .*\.php$

要支持pathinfo,要改成

location ~ .*\.php(\/.*)*$

一个比较好的typecho博客网址:https://yangwenqing.com/

参考文章:https://sspai.com/post/76951

Kodi搭建

1、搭建并配置好Jellfin之后,接着需要安装Kodi。

官网地址:Kodi
下载到本地后,默认安装即可,安装结束之后勾选Run Kodi即可进入Kodi页面:

2、默认为英文,接着进行配置。

点击设置,进入Interface,在左边的菜单里选择 Skin 并把字体改成 Arial based,在Regional选项设置语言选项,下拉选择中文简体就会自动安装,一定要注意是先选择字体,不然中文字符会乱码:

3、接着点击小齿轮图标进入设置界面,选择系统菜单项,在左边的菜单里选择插件,然后打开未知来源选项:

4、接着回到进入设置界面,选择文件管理菜单项,在左边的菜单里选择添加源,然后在弹出的窗口里输入下面的地址:

https://repo.jellyfin.org/releases/client/kodi

5、接着安装 Jellyfin 插件,点击小齿轮图标进入设置界面,选择插件菜单项,再选择从 zip 文件安装,接着选择刚才创建的 kodi jellyfin 网络源:

6、在弹出的窗口里选择 repository.jellyfin.kidi.zip,等待执行完成。然后返回到上一级菜单选择从库安装,从弹出的窗口里选择 Kodi jellyfin Addons,安装即可:

7、接着会弹出窗口配置插件,这几步一般保持默认选项即可,最后登录Jellfin的服务器,在安装Jellfin过程设置的密码,选择要添加的媒体,进行添加。

8、最后,等待几秒同步,回到首页,就会看到Jelyyfin的媒体内容。

后续对媒体增删改的过程,主要是通过在Jellyfin端进行,kodi可以设置每次启动自动同步,也可以选择手动的更新。
事实上流媒体功能远不止这些,还可以设置媒体的自动刮削、中文字幕插件等等。有时间再写其他的折腾记录。