安装Numeric(old numpy)和旧版本的Python(例如Py 2.4)

Install Numeric (old numpy) and old version of Python (e.g. Py 2.4)

我有一些非常古老的python代码(写在python 2.2/2.3时代,使用我理解的numeric库是numpy的前身)。我希望通过用python 3和scipy重新编写代码来重新激活它,尽管为了测试的目的,我希望让旧代码重新工作。

我觉得这应该是可能的,因为开源软件通常会托管旧版本,尽管我在实现这一点上遇到了困难。

首先,我尝试使用Conda创建PY2.3安装:

1
conda create -n py23 python=2.3

它找不到python 2.3。因此,我创建了一个PY2.7环境。

在我的终端中按下PY 2.7活动环境,我可以看到使用pip(pip search numeric)列出的数字24.2,但它拒绝使用命令安装它。

1
pip install Numeric

最后,我尝试下载源代码,并在活动的PY2.6环境中运行

1
python setup.py install

我得到以下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
running install
running build
running build_py
running build_ext
building 'umath' extension
C:\Users\USERNAME\AppData\Local\Programs\Common\Microsoft\Visual C++ for
Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -        
DHAVE_INVERSE_HYPERBOLIC=0 -IInclude -IPackages\FFT\Include -
IPackages
NG\Include"-IC:\Program Files\Anaconda3\envs\py27r\include""-
IC:\Program Files\Anaconda3\envs\py27r\PC" /TcSrc\umathmodule.c
/Fobuild\temp.win-amd64-2.7
elease\Src\umathmodule.obj
umathmodule.c
Src\umathmodule.c(1005) : warning C4244: '=' : conversion from 'double' to
'float', possible loss of data
Src\umathmodule.c(1297) : warning C4146: unary minus operator applied to
unsigned type, result still unsigned
Src\umathmodule.c(2405) : error C2099: initializer is not a constant
Src\umathmodule.c(2405) : error C2099: initializer is not a constant
Src\umathmodule.c(2407) : error C2099: initializer is not a constant
Src\umathmodule.c(2407) : error C2099: initializer is not a constant
WARNING: '' not a valid package name; please use only .-separated package
names in setup.py
error: command
'C:\\Users\\USERNAME\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual
C++ for Python\\9.0\\VC\\Bin\\amd64\\cl.exe' failed with exit status 2

有人能告诉我哪里出错了吗?是否甚至可以从2000年初开始设置python+numeric开发环境?

我的机器是64位Windows10机器。


数字软件包可能在很久以前就被取消了认证,请尝试在安装中安装numpy 1.8,并在代码开头写入:

from numpy import oldnumeric as Numeric

对于安装中的旧numpy do:

pip install numpy==1.8