You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在auto-py-to-exe中添加.env文件及使用-onefile模式

在auto-py-to-exe中结合-onefile模式使用.env文件的方法

一、基础准备

  • 在项目根目录创建.env文件,写入API Key:
    API_KEY=your_actual_secret_key
    
  • 安装python-dotenv库用于读取.env内容:
    pip install python-dotenv
    

二、代码适配(核心步骤)

-onefile模式下,exe运行时会将所有资源解压到系统临时目录,因此需要让代码能正确定位.env文件,分两种场景处理:

场景1:将.env打包进exe(固定API Key,无需用户修改)

修改代码,获取打包后的临时资源路径:

from dotenv import load_dotenv
import os
import sys

def load_api_key():
    # 判断是否为打包后的exe环境
    if getattr(sys, 'frozen', False):
        # auto-py-to-exe打包后自动生成的临时资源目录
        resource_dir = sys._MEIPASS
    else:
        # 开发环境下的脚本所在目录
        resource_dir = os.path.dirname(os.path.abspath(__file__))
    
    env_path = os.path.join(resource_dir, '.env')
    load_dotenv(env_path)
    return os.getenv("API_KEY")

# 调用并验证API Key
api_key = load_api_key()
if not api_key:
    raise ValueError("未找到API_KEY,请检查.env文件配置")

场景2:让用户自行放置.env到exe同目录(允许用户配置API Key)

若需要用户自主设置API Key,无需将.env打包进exe,代码改为获取exe所在目录:

from dotenv import load_dotenv
import os
import sys

def load_api_key():
    if getattr(sys, 'frozen', False):
        # 打包后的exe所在目录
        exe_dir = os.path.dirname(sys.executable)
    else:
        exe_dir = os.path.dirname(os.path.abspath(__file__))
    
    env_path = os.path.join(exe_dir, '.env')
    load_dotenv(env_path)
    return os.getenv("API_KEY")

api_key = load_api_key()

三、auto-py-to-exe配置(针对场景1)

如果是场景1需要打包.env,按以下步骤操作:

  1. 打开auto-py-to-exe,选择你的Python脚本路径
  2. 勾选One File选项(启用-onefile模式)
  3. 找到Additional Files区域,点击Add Files,选择项目根目录的.env文件
  4. 对添加的.env文件,设置Destination为.(表示将文件解压到临时目录的根路径,与代码中定位的路径匹配)
  5. 按需配置输出目录、图标等选项,点击Convert .py to .exe完成打包

四、注意事项

  • 开发阶段,确保.gitignore中包含.env,避免密钥泄露
  • 场景2下,打包完成后需将.env文件手动复制到exe所在目录,用户才能修改配置
  • 测试打包后的exe时,若出现找不到API Key的情况,可打印env_path变量确认路径是否正确

内容的提问来源于stack exchange,提问作者oFinally

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:22:10