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'}  # 输出的内容
END
本文作者: 文章标题:Python常用
本文地址:https://lyj15.cn/758.html
版权说明:若无注明,本文皆羡逍遥原创,转载请保留文章出处。
最后修改:2025 年 11 月 24 日
如果觉得我的文章对你有用,请随意赞赏