我发现如果我同时安装了 sympy 和 numpy(编辑:或 IPython)(32 位 Windows 7),那么我只能通过其 isympy 脚本文件运行 sympy,例如,从 git-bash 控制台
pushd /c/Python27/Lib/site-packages/sympy/bin
python isympy
limit(diff(exp(-1/t**2), t, 64), t, 0)
紧缩几秒钟然后打印 0
但是,如果我尝试导入 sympy,如
from sympy import Symbol, cos
我得到一个ImportError: cannot import name Float
(下面的完整追溯)
我仍然可以从其isympy
脚本运行 sympy,并且可以将 numpy 和 scipy 导入从isympy
脚本启动的会话中。在这种情况下,numpy 和 scipy 打印输出与记录的结果不同,但它们通过了一个小的临时测试。
这是一个已知问题,还是我搞砸或误解的问题?我将不胜感激建议,指导,类似的经验等。
顺便说一句,我没有使用 64 位版本,因为我也在尝试安装 matplotlib,并且我认为 Tkinsert 不是有效的可执行文件出了点问题,所以我一直支持一切的 32 位版本。
编辑:
从头开始,安装 sympy 而不是 numpy,测试它 100% ok,然后安装 IPython。现在from sympy import Symbol
产生一个类似的堆栈跟踪。
结束编辑
详情如下:
在 Windows 7 上将 Python 2.7.3 32 位全新安装到默认目录C:\Python27
中。然后使用 git-bash 窗口安装 sympy,如下所示
pushd /c/Python27/Lib/site-packages
git clone git://github.com/sympy/sympy.git
cd sympy
python setup.py install
测试:
python setup.py test
跑了一会儿,都过去了。
标准的临时测试
from sympy import cos
x = Symbol('x')
(1/cos(x)).series(x,0,10)
印刷
1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)
通过脚本运行 sympy 可以isympy
提供更漂亮的打印效果
quit()
python /c/Python27/Lib/site-packages/sympy/bin/isympy
>>> (1/cos(x)).series(x, 0, 10)
2 4 6 8
x 5*x 61*x 277*x / 10\
1 + -- + ---- + ----- + ------ + O\x /
2 24 720 8064
现在,通过浏览器安装 numpy:
新会话中的临时测试
python
import numpy as np
a = np.arange(10)
a
印刷
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
但
from sympy import Symbol,cos
生成
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import Symbol,cos
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "sympy\__init__.py", line 49, in <module>
from sympy.core import *
File "sympy\sympy\__init__.py", line 52, in <module>
from polys import *
File "sympy\sympy\polys\__init__.py", line 3, in <module>
from polytools import (
File "sympy\sympy\polys\polytools.py", line 17, in <module>
from sympy.polys.polyclasses import DMP
File "sympy\polys\__init__.py", line 3, in <module>
from polytools import (
File "sympy\polys\polytools.py", line 64, in <module>
from sympy.polys.domains import FF, QQ
File "sympy\polys\domains\__init__.py", line 11, in <module>
from finitefield import FiniteField
File "sympy\polys\domains\finitefield.py", line 5, in <module>
from sympy.polys.domains.groundtypes import SymPyIntegerType
File "sympy\polys\domains\groundtypes.py", line 34, in <module>
from sympy import (
ImportError: cannot import name Float
我还能跑
python /c/Python27/Lib/site-packages/sympy/bin/isympy
但现在
import numpy as np
a = np.arange(10)
a
印刷
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
而不是预期的
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])