Python SymPy解决线性系统

时间:2014-01-31 11:08:31

标签: python sympy importerror

我有Python 3.3.3和SymPy 0.7.4.1,都是x64版本,并且在我的计算机上本地安装。我正在使用PSPad作为Python脚本编写的配置编辑器。

在模块中使用来自库sympy的导入时,该模块应解决一组三个线性方程式:

from sympy import Matrix, solve_linear_system
from sympy.abc import x, y, z

def main():
    system = Matrix (((3,2,-1,1) ,(2,-2,4,-2),(-1,0.5,-1,0)))
    print(solve_linear_system(system, x, y,z))

if __name__ == "__main__":
    main()

编辑器PSPad控制台输出返回以下内容:

traceback (most recent call last):   File "C:\Users\GOODLU~1\AppData\Local\Temp\PSpad\securesafety_DISK_5GB\Programmation\linear system solve SYMPY.py", line 1, in <module>
    from sympy import Matrix,solve_linear_system   File "C:\Users\GOODLU~1\AppData\Local\Temp\PSpad\securesafety_DISK_5GB\Programmation\sympy.py", line 2, in <module>
    from sympy import var,Eq,solve ImportError: cannot import name var

Process completed, Exit Code 1.
Execution time: 00:00.134

实际上,我对这些问题非常怀疑:

  1. 为什么在输入相同内容而没有对象def main()并在IDLE中逐行输入时,为什么一切都正确解决,如:{x: 1.00000000000000, y: -2.00000000000000, z: -2.00000000000000}

  2. 为什么我的带有对象的PSPad文件具有相同的计算行,不起作用并返回错误?

  3. 实际上,我想在普通的python代码中使用SymPy并在列表中获得计算结果或在控制台中打印(如在IDLE中一样)。为了避免一些恼人的线到线IDLE操作,我的代码文件应该是什么样的?

1 个答案:

答案 0 :(得分:5)

问题似乎是您创建了一个名为sympy.py的文件,该文件与sympy模块同名。

因此,在from sympy import ...声明中,您的sympy.py充当了同情模块。

尝试将文件重命名为其他内容,例如sympy_programming_test.py,并告知其是否有效。