AI摘要
Python批量安装项目依赖的方法及常见错误解决方法。
批量安装项目依赖
pip install -r requirements.txt在这个文件里面写上下面内容,就可以批量下载了
django==4.2.7 # 安装4.2.7版本
requests>=2.28.0 # 大于等于 2.28.0 的版本
numpy~=1.24.0 # 安装兼容性版本,相当于 >=1.24.0, ==1.24.*
pandas # 安装最新版本可能遇到的错误及解决方法:
错误1:编码问题
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 86: illegal multibyte sequence
解决方法:更新pip版本,e:\python385\python.exe换成自己的目录
e:\python385\python.exe -m pip install --upgrade pip错误2:pip 配置了代理,但该代理并不存在或未运行
ProxyError('Cannot connect to proxy.', FileNotFoundError(2, 'No such file or directory'))
解决方法:
查看pip config list 有无输出,没有输出就是对的
查看echo %HTTP_PROXY% echo %HTTPS_PROXY% echo %http_proxy% echo %https_proxy%这几个有没有输出地址,没有输出地址的话就说明没有配置代理
查看 Windows 设置 → 网络和 Internet → 代理 里面有没有把代理打开,有的话就关闭如果看到这些,就说明成功在安装了
Collecting fastapi>=0.104.0 (from -r requirements.txt (line 2))
Downloading fastapi-0.119.0-py3-none-any.whl.metadata (28 kB)
Collecting uvicorn>=0.24.0 (from uvicorn[standard]>=0.24.0->-r requirements.txt (line 3))
Downloading uvicorn-0.33.0-py3-none-any.whl.metadata (6.6 kB)打开并读取 config.json 文件
with open('config.json', 'r', encoding='utf-8') as f:
config = json.load(f)存储进程全局变量
os.environ['sss'] = '111' # 存储
print(os.getenv('sss', '2222')) # 如果sss的值为空,就输出2222除了这些,os还有其他的东西
路径拼接(跨平台) os.path.join(path1, path2) 自动适配 Windows(\)/ macOS/Linux(/),避免路径写错(如拼接配置文件路径)
获取当前目录 os.getcwd() 得到命令行启动 Python 时的工作目录(如 D:\code\tool.daishuerp)
切换工作目录 os.chdir("D:/code/tool.daishuerp/src") 类似 CMD 的 cd 命令,切换 Python 代码的 “当前工作路径”
判断文件 / 目录是否存在 os.path.exists("config.yaml") / os.path.isfile("main.py") / os.path.isdir("gui") 检查配置文件是否存在、路径是文件还是文件夹(避免读取不存在的文件报错)
创建文件夹 os.makedirs("data/logs", exist_ok=True) 递归创建多层目录(exist_ok=True 避免已存在报错,如创建日志文件夹)
删除文件 / 目录 os.remove("temp.txt")(删文件) / os.rmdir("empty_dir")(删空目录) 清理临时文件或空文件夹(注意:rmdir 只能删空目录,非空目录需用 shutil.rmtree)
获取文件绝对路径 os.path.abspath("main.py") 得到文件的完整路径(如 D:\code\tool.daishuerp\src\main.py)
分离文件名和路径 os.path.split("D:/code/main.py") → ("D:/code", "main.py") 拆分路径和文件名,方便批量处理文件
分离文件后缀 os.path.splitext("config.yaml") → ("config", ".yaml") 提取文件后缀(如判断是 .xlsx 还是 .csv 文件)
执行系统命令(简单) os.system("notepad.exe")(Windows 打开记事本)/ os.system("ls")(Linux 列目录) 执行命令并返回状态码(适合不需要获取输出的简单命令)
执行命令并获取输出 os.popen("dir").read()(Windows 列目录) 执行命令并捕获输出结果(如获取系统信息、文件列表)
获取系统类型 os.name → nt(Windows)/ posix(macOS/Linux) 判断当前运行的操作系统,做跨平台适配(如不同系统的文件路径分隔符处理)
获取当前进程 ID os.getpid() 得到当前 Python 程序的进程号(如调试时区分多个运行的 Python 进程)
获取父进程 ID os.getppid() 得到启动当前 Python 程序的父进程号(如 CMD/PowerShell 的进程 ID)
终止进程 os.kill(pid, signal.SIGTERM)(需导入 signal 模块) 终止指定 PID 的进程(慎用,仅调试或部署时使用)
获取系统环境变量(安全版) os.getenv("ENV", "dev")(之前讲过) 安全读取环境变量,不存在返回默认值(比 os.environ 更友好)
生成随机临时文件名 os.urandom(16) → 生成 16 字节随机字节串(如生成加密盐、临时密钥) 项目中需要随机字符串时使用(如 AES 加密的随机向量)
查看文件权限 os.access("config.yaml", os.R_OK) 检查文件是否有读权限(os.R_OK)、写权限(os.W_OK)(避免权限不足报错)
重命名文件 / 目录 os.rename("old.txt", "new.txt") 批量修改文件名或文件夹名(如备份日志文件时重命名)读取yaml文件并且输出成字典格式的配置内容
daishu_base_url: "https://tool.daishuerp.com/api" # 原文件内容
{'daishu_base_url': 'https://tool.daishuerp.com/api'} # 输出的内容