python3启动web服务引发的一系列问题
背景
在某行的实施项目,需要使用python3环境运行某些py脚本。
由于行内交付的机器已自带python3 ,没有采取自行安装python3,但是运行python脚本时报没有tornado module。
错误信息
ModuleNotFoundError:No module named ‘tornado’.
错误信息很明确,缺少模块,那就使用pip安装模块。
执行 pip install tornado
居然报pip命令不存在。
执行 pip3 install tornado
还是报pip3命令不存在
解决问题
首要解决的问题是安装pip,pip的安装,由于行内系统是麒麟v10版本。
为了确保一次安装成功,我们直接采用源码安装方式安装pip。
安装pip3
首先,下载pip源码,地址:https://pypi.org/project/pip/
传包到服务器,解压:tar -zxvf pip-23.0.1.tar.gz
cd pip-23.0.1
执行sudo python3 setup.py install
使用pip 安装tornado
pip安装好以后,使用pip、pip3命令安装tornado。
Pip3 安装完毕后,发现使用pip3 install tornado 报错,使用whl包安装,同样报错:
ERROR: tornado-6.2-cp37-abi3-cp39-manylinux1_x86_64.whl is not support wheel on this platform
试了好几个版本,都是报同样的错。
由于系统特殊性,下载了几个wheel格式包都无法安装成功。
于是又得采取源码安装方式。
只能使用源码方式安装:下载tornado源码,地址:https://pypi.org/project/tornado/
于是解压:tar -zxvf tornado-6.2.tar.gz
进入源码包:cd tornado-6.2/
安装模块:sudo python3 setup.py install
虽然tornado 安装好了,但是我们的python脚本还是执行失败了。
最后没办法只能,将脚本内:import 过的module 挨个检查一遍,缺失的就继续采用源码安装。
最后
如果操作系统是centos、redhat 系列,建议直接采用anaconda 一键安装python环境,该软件安装完后,会将常用python 模块也附带安装掉。
扩展:用python最新版本安装web3后调试错误原因和解决方法
由于调试web3,安装了最新版本的python3.11 ,用命令安装 pip install web3,提示安装错误,无法完成。仔细观察根据错误提示发现是 VC++14没有安装的原因,根据提示从微软官方下载vs_BuildTools并单独安装VC++14如下图
安装后重启系统,再运行 pip install web3 安装成功。 用 pip list 命令查看 已经有了web3模块.
开始调试web3 . 在python终端 输入 from web3 inport Web3 出现错误提示看最后一条:
导入错误:无法从"inspect"(C:\Users\Swapn\AppData\Local\Programs\Python\Python311\Lib\inspect.py)导入名称"getargspec"
根据提示查看inspect.py文件,确实查不到“getargspec”名字,发现有getfullargspec函数,可能是新版本更改了函数名字,就将getargspec替换为getfullargspec,保存。在调试 没有错误,调试成功。
总结:
新版本python3.11安装web3前,先下载vs_BuildTools并单独安装VC++14后重启在命令 pip install web3 安装成功。调试web3,需要将库里的inspect.py文件将getargspec替换为getfullargspec即可正常运行了。
到此这篇关于python3启动web服务引发的一系列问题的文章就介绍到这了,更多相关python3启动web服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!