使用miniconda运行GPT-NEO相关Python脚本无法创建txt文件问题求助
问题排查&解决方案
1. 优先修复异常捕获逻辑
你当前代码的except Exception: pass会吞掉所有运行时错误,导致你完全看不到写入失败的具体原因,这是你找不到问题的核心原因。先把异常捕获部分修改为打印错误信息:
except Exception as e: print("运行报错:", e)
运行后就能直接看到是权限问题、路径问题还是编码问题。
2. 解决相对路径的工作目录匹配问题
你通过绝对路径调用Python脚本时,程序的**当前工作目录(CWD)**是你启动CMD时进入的目录,不是脚本本身所在的目录,你写的相对路径gpttext.txt会被写入到CWD下,而非gpt_neo_app文件夹,大概率文件已经生成在其他目录你没有找到。
你可以通过以下两种方式解决:
- 运行脚本前先在CMD中进入脚本所在目录,再执行脚本:
cd C:\Users\Graham\Desktop\Files\programming\Languages\Python\gpt_neo_app C:\tools\miniconda3\python ai.py
- 代码中固定写入路径为脚本所在目录,避免路径混乱:
import os # 获取脚本所在目录的绝对路径 base_dir = os.path.dirname(os.path.abspath(__file__)) file_path = os.path.join(base_dir, "gpttext.txt") with open(file_path, "w", encoding="utf-8") as f: f.write(outtext)
3. 修复Windows默认编码问题
Windows系统默认使用GBK编码打开文件,GPT生成的文本可能包含GBK不支持的特殊字符,写入时会触发编码报错,在open方法中指定utf-8编码即可解决,参考上一点的代码示例。
4. 排查权限问题
如果你写入的目标路径属于系统受保护目录(比如C盘根目录、Program Files文件夹),普通权限启动的CMD没有写入权限,你可以右键点击命令提示符选择「以管理员身份运行」,再执行脚本测试。
修改后的完整参考代码
from os import system import os from transformers import pipeline import json try: # 打印当前工作目录,方便排查路径问题 print("当前工作目录:", os.getcwd()) # generator = pipeline('text-generation', model='EleutherAI/gpt-neo-2.7B', device=-1) generator = pipeline('text-generation', model='EleutherAI/gpt-neo-1.3B', device=-1) outjson = generator("unlock your hip flexors", do_sample=True, max_length=500, temperature=1.9) outtext = json.loads(json.dumps(outjson[0]))["generated_text"] # 构造脚本同目录的文件路径 base_dir = os.path.dirname(os.path.abspath(__file__)) file_path = os.path.join(base_dir, "gpttext.txt") with open(file_path, "w", encoding="utf-8") as f: f.write(outtext) print("写入成功,文件路径:", file_path) print(outtext) except Exception as e: print("运行报错:", e)
内容的提问来源于stack exchange,提问作者graham23s
相关产品推荐
相关产品推荐

