【问题标题】:methods from .pyc file not being read.pyc 文件中的方法未被读取
【发布时间】:2025-12-31 11:40:12
【问题描述】:

我有一个执行某些操作的 python 文件。它从 .pyc 文件中调用方法,如下所示。

someFile.py

# do something 

from EvaluateT.read_input_data import *
print "imported"

# do something 

inputData = ReadInputData(someInputFile)
print "read"

# do something 

当我调用解释器并输入以下语句时,

import read_input_data
help (read_input_data)

我看到以下输出:

CLASSES
     ReadInputData

class ReadInputData
 |  Methods defined here:
 |  
 |  __init__(self, inputFile)
 |  
 |  read_input_data(self)

但是,当我运行 someFile.py 时,输出会打印“imported”并忽略“inputData = ReadInputData(someInputFile)”语句之后的所有内容。 为什么这个声明失败了?我做错了什么?

【问题讨论】:

  • 我怀疑这与 Python 字节码缓存文件有关。 read_input_file 是什么,read_input_data 有什么(注意,两个不同的名字!)
  • @MartijnPieters:这是一个错字。我刚刚修好了。我导入了 read_input_data.pyc 但不幸的是无法访问其中的方法。知道出了什么问题吗?
  • print 语句后跟缩进,在 import 语句之后?
  • @anmol_uppal:修复它。 'inputData = ReadInputData(someInputFile)' 之后的所有语句都被忽略
  • @ChaitraRaghunath:如果代码挂在ReadInputData(someInputFile) 上,那么我们所能做的就是猜测。某些原因导致ReadInputData.__init__() 不返回。没有源代码,我们无能为力。

标签: python pyc


【解决方案1】:

我安装了uncompyle2 将我的 .pyc 文件反编译为 .py 文件。它正在使用未正确安装的 numpy 和 scipy。我重新安装了所需的软件包,现在可以正常工作了!

【讨论】: