要反编译一个在Python 3.6.8版本下编译的.pyc文件,你可以使用uncompyle6库。以下是一个Python脚本,它会使用Python 3.6.8环境来反编译指定的.pyc文件:

import os
import sys
import subprocess

def decompile_pyc(pyc_path, python_version="3.6.8"):
    """
    反编译指定Python版本编译的.pyc文件
    
    参数:
        pyc_path: .pyc文件路径
        python_version: 编译.pyc文件时使用的Python版本(默认为3.6.8)
    """
    # 检查文件是否存在
    if not os.path.exists(pyc_path):
        print(f"错误: 文件 {pyc_path} 不存在")
        return
    
    # 检查是否是.pyc文件
    if not pyc_path.endswith('.pyc'):
        print(f"错误: {pyc_path} 不是.pyc文件")
        return
    
    # 创建输出文件名
    py_path = pyc_path[:-4] + '.py'
    
    try:
        # 使用uncompyle6反编译
        cmd = [
            sys.executable,  # 使用当前Python解释器
            "-m", "uncompyle6",
            "-o", py_path,
            pyc_path
        ]
        
        print(f"正在反编译 {pyc_path}{py_path}...")
        subprocess.run(cmd, check=True)
        print("反编译完成!")
        
    except subprocess.CalledProcessError as e:
        print(f"反编译失败: {e}")
    except Exception as e:
        print(f"发生错误: {e}")

# 指定.pyc文件路径
pyc_file = r"C:\Leon\OceanXECM\Spring-Vertiv-不能Move问题\py\202509261145\ecm_auto_move.pyc"

# 调用反编译函数
decompile_pyc(pyc_file)

使用说明:

  1. 确保你已经安装了uncompyle6库,可以通过pip install uncompyle6安装
  2. 脚本会尝试将.pyc文件反编译到同目录下的.py文件
  3. 脚本会使用当前Python环境中的uncompyle6工具

注意事项:

  • 如果.pyc文件是使用不同版本的Python编译的,反编译可能会失败或产生不准确的结果
  • 最佳实践是在与编译.pyc文件相同的Python版本环境中运行反编译
  • 如果反编译失败,你可以尝试使用pycdc等其它反编译工具
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐