我有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
实际上,我对这些问题非常怀疑:
为什么在输入相同内容而没有对象def main()
并在IDLE中逐行输入时,为什么一切都正确解决,如:{x: 1.00000000000000, y: -2.00000000000000, z: -2.00000000000000}
为什么我的带有对象的PSPad文件具有相同的计算行,不起作用并返回错误?
实际上,我想在普通的python代码中使用SymPy并在列表中获得计算结果或在控制台中打印(如在IDLE中一样)。为了避免一些恼人的线到线IDLE操作,我的代码文件应该是什么样的?
答案 0 :(得分:5)
问题似乎是您创建了一个名为sympy.py
的文件,该文件与sympy
模块同名。
因此,在from sympy import ...
声明中,您的sympy.py
充当了同情模块。
尝试将文件重命名为其他内容,例如sympy_programming_test.py
,并告知其是否有效。