之前一直运行正常的使用FastAPI搭建的python项目,今天突然运行不起来了,报错:pkg_resources.extern.packaging.requirements.InvalidRequirement: Parse error at "'ler'": Expected stringEnd。 根据报错的提示找到文件位置和对应的文件代码如下:本文地址:http://www.04007.cn/article/1193.html,未经许可,不得转载.
File "c:\python386\lib\site-packages\pkg_resources\_vendor\packaging\requirements.py", line 95, in __init__ class Requirement(object): def __init__(self, requirement_string): try: req = REQUIREMENT.parseString(requirement_string) except ParseException as e: raise InvalidRequirement('Parse error at "{0!r}": {1}'.format( requirement_string[e.loc : e.loc + 8], e.msg ) )按提示好像和requirement.txt这个文件的加载程序逻辑有关,但运行程序的过程并不涉及这个文件的加载,而这段时间我对本地的开发环境的变更主要是增加了一个python版本3.11,而此程序原来的运行环境是python3.8.6。但我增加的程序版本并没有相互影响,因为另一套原来也是3.8.6环境的程序也能独立正常运行。网上有说是pip版本和setuptools相关的问题,因为我后来更新过pip。
从PIP官网:https://pypi.tuna.tsinghua.edu.cn/simple/pip/ 下载了两个低版本的pip并进行安装尝试,但没有解决问题。
pip-10.0.0-py2.py3-none-any.whl
pip-20.2.2-py2.py3-none-any.whl
#python -m pip install pip-20.2.2-py2.py3-none-any.whl本文地址:http://www.04007.cn/article/1193.html,未经许可,不得转载.
没有解决问题不说,在进行一顿操作之后,更是没有继续往下操作了。执行pip操作时报一堆错误:
WARNING: Error parsing requirements for win32-setctime: Parse error at "'lack (>='": Expected stringEnd
WARNING: Error parsing requirements for uvicorn: Parse error at "'lick (=='": Expected stringEnd
WARNING: Error parsing requirements for urllib3: Parse error at "'OpenSSL>'": Expected stringEnd
WARNING: Error parsing requirements for starlette: Parse error at "'ofiles ;'": Expected stringEnd
WARNING: Error parsing requirements for starlette-context: Parse error at "'lette'": Expected stringEnd
WARNING: Error parsing requirements for setuptools: Parse error at "'o.packag'": Expected stringEnd
WARNING: Error parsing requirements for requests: Parse error at "'llib3 (!'": Expected stringEnd
WARNING: Error parsing requirements for python-dotenv: Parse error at "'lick (>='": Expected stringEnd
WARNING: Error parsing requirements for pymysql: Parse error at "'l (>=1.4'": Expected stringEnd
WARNING: Error parsing requirements for pydantic: Parse error at "'ons (>=3'": Expected stringEnd
WARNING: Error parsing requirements for psutil: Parse error at "'ock ; (p'": Expected stringEnd
WARNING: Error parsing requirements for pandas: Parse error at "'on-dateu'": Expected stringEnd
WARNING: Error parsing requirements for paho-mqtt: Parse error at "'ocks'": Expected stringEnd
WARNING: Error parsing requirements for minio: Parse error at "'llib3'": Expected stringEnd
WARNING: Error parsing requirements for loguru: Parse error at "'ocontext'": Expected stringEnd
WARNING: Error parsing requirements for fastapi: Parse error at "'lette =='": Expected stringEnd
WARNING: Error parsing requirements for clickhouse-driver: Parse error at "'local (<'": Expected stringEnd
WARNING: Error parsing requirements for apscheduler: Parse error at "'ools (>='": Expected stringEnd本文地址:http://www.04007.cn/article/1193.html,未经许可,不得转载.
不知道是哪里导致这个问题,也没有过多时间去排查,先解决问题为先,我本地因为另外安装了python3.11版本,后来我在python3.11版本环境中新增加了几个此业务程序中所需要的模块,并在新的环境中运行起来了。
还有一点,后来回想起来,这个错误还和后台任务APScheduler有关联,是在启动主程序里的APScheduler 任务时引发的这个错误,另一套程序因为不涉及这个APScheduler 任务能正常运行。有遇到相似问题的欢迎沟通分享。本文地址:http://www.04007.cn/article/1193.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1193.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |