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

Python3.8跨脚本导入变量报错:无法从getimp.py导入session0

问题原因及解决方案

核心错误原因

  • session0是getimp.py中main()函数的局部变量,仅在函数运行期间有效,函数执行结束后就会销毁,天然无法被外部模块直接导入
  • 导入Python模块时,if __name__ == "__main__"包裹的代码不会执行,也就是说你单独运行getimp.py时触发的main函数调用逻辑,在被导入时根本不会运行,连给session0赋值的流程都没有触发

你猜测的「脚本运行结束变量丢失」是错误的,本质问题是变量的作用域不符合导入要求,且赋值逻辑未在导入场景下触发。

修复方案

第一步:修改getimp.py逻辑

把获取session0的逻辑封装成带返回值的独立函数,同时将变量暴露到模块全局作用域,示例修改如下:

#! /usr/bin/env python3
import os
import json
import base64
import sqlite3
import shutil
from datetime import datetime, timedelta
import win32crypt # pip install pypiwin32
from Crypto.Cipher import AES # pip install pycryptodome

def get_chrome_datetime(chromedate):
    """Return a `datetime.datetime` object from a chrome format datetime"""
    # 原有逻辑保持不变
    pass

def get_encryption_key():
    # 原有解密密钥逻辑保持不变
    pass

def decrypt_data(encrypted, key):
    # 原有解密逻辑保持不变
    pass

# 把原有main函数里的逻辑封装成带返回值的函数
def get_session0():
    # 原有连接数据库、查询cookie的逻辑保持不变
    cursor.execute("""
    SELECT host_key, name, value, creation_utc, last_access_utc, expires_utc, encrypted_value
    FROM cookies
    WHERE name like '%user_id%'""")
    key = get_encryption_key()
    decrypted_value = None
    for host_key, name, value, creation_utc, last_access_utc, expires_utc, encrypted_value in cursor.fetchall():
        if not value:
            decrypted_value = decrypt_data(encrypted_value, key)
        else:
            decrypted_value = value
        print(f"""
        {decrypted_value}
        ===============================================================""")
    # 增加兜底判断避免查询不到数据时报错
    if not decrypted_value:
        raise Exception("未查询到匹配的user_id cookie")
    return decrypted_value

# 模块全局暴露session0变量,导入时自动执行获取逻辑
session0 = get_session0()

if __name__ == "__main__":
    get_session0()

第二步:直接运行lookup.py即可

原有lookup.py的代码不需要修改,即可正常导入并打印session0的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:27:04