Pipenv在Windows环境下INI文件创建路径异常问题求助
Pipenv在Windows环境下INI文件创建路径异常问题求助
嘿,兄弟,这个问题我之前帮朋友排查过,大概率是虚拟环境下Python获取用户主目录的逻辑被干扰了,或者你用的是Microsoft Store版本的Python?给你拆解下原因和解决办法:
可能的根因
- 如果你是从Microsoft Store安装的Python,它自带沙箱隔离机制,默认会把用户目录重定向到
AppData\Local\Packages下对应的Python包目录里——这是Store应用的安全策略,和Pipenv本身关系不大,但虚拟环境基于这个版本的Python创建的话,运行时的环境变量会跟着被替换。 - 你的程序如果是依赖
os.path.expanduser("~")或者读取HOME环境变量来确定INI文件路径,在Store版Python的沙箱环境里,这些值都会指向隔离后的路径,自然就跑错位置了。
可以试试的解决办法
- 先确认Python版本来源:打开命令行敲
where python,如果输出路径里有Microsoft\WindowsApps或者Packages\PythonSoftwareFoundation...,那就是Store版。建议卸载它,从Python官网下载安装包重新安装,记得勾选“Add Python to PATH”选项。 - 要是暂时不想换Python版本,就直接在代码里显式指定真实用户目录:
import os # 读取Windows系统的真实用户主目录环境变量 real_user_home = os.environ.get("USERPROFILE") # 拼接INI文件的正确路径 ini_file_path = os.path.join(real_user_home, "你的配置文件名.ini") - 重新创建Pipenv虚拟环境:换用官网版Python后,删掉原来的虚拟环境文件夹,重新跑
pipenv install,新环境基于正常的Python版本,环境变量就会指向真实的用户主目录了。
你可以先查下是不是Store版Python的锅,这个是最常见的触发原因~
内容来源于stack exchange
相关产品推荐
相关产品推荐

