我更改了 python 代码,但 python 似乎没有读取更改

mam*_*don 1 python

所以,我一直在用 python 编程,但遇到了这个非常烦人的问题。我编写了一个小型矩阵库并开始在另一个模块中使用它(例如,import matrixlib)。我会找到一个错误,修复它并再次运行程序。虫子还在。

我会加入一些打印语句来查看发生了什么,但它们不会打印。我最终发现我的更改没有在 python 中注册。所以我开始删除 .pyc 文件(预编译的 python),但这没有帮助。

我最终放弃了,直接从矩阵库文件开始编程,但现在这个问题又回来了。我加入了一个打印语句来弄清楚一个方法发生了什么,解决了这个问题,然后把它拿出来。但它仍然打印。我什至在与 IDLE 不同的文本编辑器中搜索了“打印”,但在代码中只找到了一个打印语句。

这不是一个真正的代码问题,我可能以某种方式搞砸了我的 python 安装。(这只发生在我的 windows 机器上,而不是我的 linux 机器上)。如果您无论如何都想查看代码,请随意。hiesenbug-print 语句在我的代码中被注释掉了,但仍然执行。

    def det(self):
        #Had better be a square matrix.
        if self.colCount() != self.rowCount():
            return None
        #Are we a 1x1 matrix?
        if self.colCount() == self.rowCount() == 1:
            return self.a[0][0]
        #Are we a 2x2 matrix?
        if self.colCount() == self.rowCount() == 2:
            return self.a[0][0]*self.a[1][1]-self.a[1][0]*self.a[0][1]
        #Not a 2x2... so lets start recursing.
        d = 0
        for e in range(0,self.colCount()):
            tmp = partition(self.a, 0, e)
            if e%2 == 0:
                d = d + self.a[0][e]*self.detRecursive(tmp)
            else:
                d = d - self.a[0][e]*self.detRecursive(tmp)
        #print d
        return d

    def detRecursive(self, matrix):
        m = Matrix()
        m.setMatrix(matrix)

        return m.det()

    def partition(a, r, c):
        out = []
        for row in range(0, len(a)):
            if r != row:
                out.append([])
                for col in range(0, len(a[0])):
                    if col != c:
                        out[-1].append(a[row][col])
        return out
Run Code Online (Sandbox Code Playgroud)

mou*_*uad 5

我认为当您第一次安装软件包时:

python setup.py install
Run Code Online (Sandbox Code Playgroud)

而不是:

python setup.py develop
Run Code Online (Sandbox Code Playgroud)

因为当您执行setup.py installsetup.py 时,只需复制系统路径中的包文件,因此每次更改包文件时,您都必须重新运行setup.py install ,另一方面,setup.py develop在“开发模式”下安装您的包,这意味着它只是创建一个链接(一个鸡蛋)到你的“本地”包文件,这样库“本地”文件中的每一个变化都会被检测到(它只是一个链接)

希望这会有所帮助:)