一、导言:
今天在使用脚本的时候,需要许多库,使用pip下载了无数遍,但是一直报错,显示没有对应模块。
pip install -r requirements.txt
报错显示(搬用 / 确实没留下令人崩溃的报错截图)
在网上查阅到了解决方法,为了更好了解和学习python语言,在ai的帮助下写了个脚本。纠正了ai代码逻辑顺序的错误,并给出了一定的提示。
二、原理:
启动脚本的python版本与pip下载到的python版本不匹配。
三、命令行解决方法:
py -[python的版本号] -m pip install -r [资源目录]
eg:py -3.8 -m pip install -r "C:\Users\administrator\Desktop\requirements.txt"
四、python脚本:
import subprocess
import sys
def replace_python_version(command, new_version):
# 替换命令中的Python版本
return command.replace('-3.8', f'-{new_version}')
def install_requirements(requirements_path, python_version):
# 使用-r选项安装依赖
try:
subprocess.run(f'py -{python_version} -m pip install -r "{requirements_path}"', shell=True, check=True)
except subprocess.CalledProcessError as e:
print(f"使用-r选项安装依赖时发生错误: {e}")
print("\n\n输入错误!!输入'sb是我'关闭脚本。\n\n")
while True:
exit_command = input("> ")
if exit_command.lower() == 'sb是我':
sys.exit(1)
def install_resource(resource_name, python_version):
# 直接安装单个资源
try:
subprocess.run(f'py -{python_version} -m pip install {resource_name}', shell=True, check=True)
except subprocess.CalledProcessError as e:
print(f"直接安装资源时发生错误: {resource_name}, 错误信息: {e}")
print("\n\n输入错误!!输入'sb是我'关闭脚本。\n\n")
while True:
exit_command = input("> ")
if exit_command.lower() == 'sb是我':
sys.exit(1)
def main():
python_version = input("请输入Python版本(例如3.9): ")
install_type = input("请选择安装方式: \n1. 使用-r选项安装整个依赖文件\n2. 直接安装单个资源\n请输入选项(1或2): ")
if install_type == '1':
requirements_path = input("请输入资源清单文件的完整路径(例如./requirements.txt)!请去除路径两边的引号!: ")
install_requirements(requirements_path, python_version)
elif install_type == '2':
resource_name = input("请输入要安装的单个资源名称(例如flask): ")
install_resource(resource_name, python_version)
else:
print("无效的选项,请重新运行脚本。")
print("\n\n输入错误!!输入'sb是我'关闭脚本。\n\n")
while True:
exit_command = input("> ")
if exit_command.lower() == 'sb是我':
sys.exit(1)
print("安装完成。输入'GG'关闭脚本。")
while True:
exit_command = input("> ")
if exit_command.lower() == 'gg':
break
if __name__ == "__main__":
main()
小白的学习之路上的记录,欢迎大佬们指点。