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

5
我有一些非常老的Python代码(大约写于Python 2.2/2.3时期,并使用Numeric库,我了解到这是Numpy的前身)。我希望通过Python 3和Scipy的重写来重新激活它,但为了测试目的,我想让旧代码再次运行。
我觉得这应该是可能的,因为开源软件通常会保留旧版本,尽管我在实现上遇到了麻烦。
首先,我尝试使用conda创建一个Py2.3安装:
conda create -n py23 python=2.3

由于无法找到Python 2.3,因此我创建了一个Py2.7环境。

在终端中使用Py 2.7活动环境后,我可以使用pip (pip search Numeric)查看到Numeric 24.2的列表,但是它拒绝使用命令安装。

pip install Numeric

最后,我尝试下载源代码,在一个正在运行的Py2.6环境中运行。
python setup.py install

我遇到了以下错误:

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\RNG\Include "-IC:\Program Files\Anaconda3\envs\py27r\include" "-
IC:\Program Files\Anaconda3\envs\py27r\PC" /TcSrc\umathmodule.c 
/Fobuild\temp.win-amd64-2.7\Release\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位Windows 10电脑。


任何适用于Windows或Linux的解决方案都可以,我都能使用。谢谢! - PhysLQ
2个回答

2

数字包可能已经被弃用太久了,尝试在您的安装中安装numpy 1.8,并在代码开头写入:

from numpy import oldnumeric as Numeric

对于旧版本的numpy,请在安装时执行以下操作:

pip install numpy==1.8


我测试了你的答案,但它不起作用。至少 V 1.8 不是我们要找的版本。 - Искрен Станиславов
1
然而,这并不能解决依赖于原始旧Numeric的软件包中存在的问题。一些库依赖于Numeric软件包中的C头文件。 - Искрен Станиславов

0
如果你想要“真正的东西”,为什么不使用VirtualBox创建一个虚拟容器,然后从那个时代安装一个Linux分发版,比如Ubuntu 4.10
它有Python2.3和Python-numeric软件包。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接