在python3.3.5中,我使用一些作为独立函数工作的代码来构建一个类,但是当类版本运行时,它会中止而没有错误消息。它依赖于作为pyd分发的第三方包pcFastDB。在
unit1.py
import sys
import pcFastDB as p3
def get_context():
return p3.pcContext.create()
def get_DB(ctx, dbName):
return p3.pcDB.open(ctx, dbName)
.. more..
可用作:
^{pr2}$但是
Unit2.py
import pcFastDB as p3
class DBOperation(object):
def __init__(self, DB_name):
'''
Get the context, open the database and fill a channel list
'''
self.ctx = p3.pcContext.create()
print('Context ' + str(self.ctx ))
print(' - opening ' + DB_name)
self.db = p3.pcDB.open(self.ctx, DB_name) #aborts here
print('DB opened successfully...' +str(self.db))
当我试图打开数据库时,会自动中止。在
db = DBOperation('tester')
testerdb存在,并且在我运行它的项目文件夹中。在
没有异常,没有错误,它只是停止执行。PyDev不太喜欢pyd文件。我不了解任何代码,所以调试有点神秘,但是在IPython3中我可以看到所有的函数和类成员,所以我知道它没问题。不幸的是,IPython3中的调试对我来说是一个深不可测的谜。在
不管怎样,我知道我调用了正确的函数,而且我知道函数是有效的,因为它在Unit1中工作得很好,只是它作为类成员不起作用。这有可能吗?在
我已经将DB行从init中分离出来并分别调用它们,我将ctx从类中分离出来并传递给函数,但这也不起作用。当从PyDev、IPython3或命令行中运行时,它的行为是相同的。在
有什么想法吗?在
谢谢大家,我基本上是把相同的代码重写到一个新的模块中。文件本身似乎有点奇怪。我在责怪皮德夫。在
马克
相关问题 更多 >
编程相关推荐