一、 from distutils.cmd import Command as DistutilsCommand
ModuleNotFoundError: No module named ‘distutils’
- 从 Python 3.10 开始,distutils 模块已经被标记为弃用(deprecated)。
- setuptools 是 distutils 的一个增强版本
- 使用新版setuptools,可以替代distutils使用
pip install --force-reinstall --upgrade setuptools
二、ModuleNotFoundError: No module named ‘flask’
- uwsgi --ini noah.ini,使用uwsgi运行,uwsgi使用python3.6编辑安装,版本是2.0.20
- 下载一个新版本2.0.30,使用python3.13编译安装
tar -zxvf uwsgi-latest.tar.gz
cd uwsgi-2.0.30
python3.13 uwsgiconfig.py --build
# python3.13 setup.py install 报错
python3 setup.py install
# 保留旧,新两个uwsig
cp uwsgi uwsgi-2.0.30
# 复制整个文件
sudo mv ~/uwsgi-2.0.30 /usr/local/lib
cd /usr/local/lib/uwsgi-2.0.20
sudo cp uwsgi-2.0.30 /usr/local/bin/
sudo ln -sv /usr/local/bin/uwsgi-2.0.30 /usr/bin/uwsgi-2.0.30
三、针对新的uwsgi,重新配置启动命令
#. 测试启动
uwsgi-2.0.30 --ini noah.ini
sudo mkdir /etc/uwsgi/vassals-2.0.30
sudo cp noah.ini /etc/uwsgi/vassals-2.0.30/
[program:uwsgi_emperor_2.0.30]
directory=/usr/local/bin
command=uwsgi-2.0.30 --emperor /etc/uwsgi/vassals-2.0.30 --uid www-data --gid www-data
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
killasgroup=true
numprocs=1
user=jtserver
redirect_stderr=true
stdout_logfile=/var/log/supervisor/uwsgi_emperor_2.0.30.log
stdout_logfile_backups=15
stdout_logfile_maxbytes=300MB
参考
- ModuleNotFoundError: No module named ‘distutils’ in Python 3.12 [duplicate]
- https://pypi.org/project/uWSGI/#files