
做过开发的小伙伴都知道,我们在使用Python编程的时候,最多的时间并不是编写代码,而是在debug,改报错😂
所以了解错误,并及时改正就成为了开发者的必备技能(小编自己瞎说的🐶)
执行 pip3 install requirements.txt命令时报错:
ERROR: Could not find a version that satisfies the requirement requirements.txt (from versions: none)
HINT: You are attempting to install a package literally named "requirements.txt" (which cannot exist). Consider using the '-r' flag to install the packages listed in requirements.txt
ERROR: No matching distribution found for requirements.txt
终端报错如图:

这个错误是因为我们使用的pip命令错误造成的
pip正在安装一个名为 requirements.txt 的包,而不是读取文件中的依赖列表
正确的命令应该是:
pip3 install -r requirements.txt
注意要加上 -r 参数,这告诉 pip 从指定的文件中读取并安装所有列出的包
小伙伴们别小看这错误低级,很多新手必踩的坑😂
右击运行脚本时报错
NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020
这个错误是因为我们使用的是 LibreSSL 而不是 OpenSSL,而 urllib3 v2 版本需要 OpenSSL 1.1.1+版本,依赖包的版本不对,导致报错
最推荐的方法就是:降级 urllib3
# 执行命令
pip install 'urllib3<2'
或者明确指定版本:
pip install urllib3==1.26.18
当然我们也可以选择忽略警告,或者升级OpenSSL等解决此错误,但推荐降级 urllib3最稳妥,不会影响我们其他脚本的正常运行
右击运行脚本时报错
File "/Users/youth/Downloads/MarketSpider-main/Starter.py", line 112
match input("输入数字执行对应修复:"):
^
SyntaxError: invalid syntax
终端报错如图:

这个错误是因为我们使用的 Python 版本低于 3.10,而 match 语句是在 Python 3.10 中引入的新语法(属于新版本更新的新语法,老版本并不支持)
最推荐将代码中的 match 语句替换为传统的 if-elif-else 结构
# 替换这部分:
match browser_input:
case "1":
config["browser"] = "chrome"
case "2":
config["browser"] = "edge"
case "3":
config["browser"] = "firefox"
case "_":
print("输入不合法")
return
# 改为:
if browser_input == "1":
config["browser"] = "chrome"
elif browser_input == "2":
config["browser"] = "edge"
elif browser_input == "3":
config["browser"] = "firefox"
else:
print("输入不合法")
return
当然最简单的方法就是升级Python 3.10 或更高版本,但小编建议不要轻易升级版本,可能影响其他脚本的正常运行
# 检查当前 Python 版本
python --version
# 如果版本低于 3.10,升级 Python
开发圈子里流传一句话:只有脚本可以运行,那就千万别动它!!你永远不知道这次修改会影响到哪些其他脚本的崩溃😂