0

我在 SunOS2.10 中工作。我非常需要 python 中的 xlwt(xlrd) 模块(默认版本 2.4.6)。在管理员用户的一个文件夹中,我找到了 Python 2.7.1,所以如果我写完整路径我可以用它代替 2.4.6。我没有直接安装模块的权限,所以我使用了命令:

(path to ver 2.7)/python setup.py install --user

并且模块 xlrd 安装没有问题。但在安装模块 xlwt 期间发生错误:

“ImportError:没有名为数学的模块”

我检查了帮助('modules'),它列出了我的模块“math_failed”,据我所知应该只有数学。我也尝试使用 Python 2.4 安装这个模块(xlwt),但它给了我一个错误:

"选项 -- 用户无法识别",

所以据我了解,此 python 版本中不提供此选项(但数学模块在那里工作正常)。

我还尝试使用以下方法在本地安装整个 Python:

。/配置

make altinstall 前缀=~ exec-prefix=~

但它也没有工作,因为在“配置”期间我收到错误:

“检查 C 编译器是否工作......不”

我不知道如何用编译器解决这个问题或如何在本地安装数学模块,因为我什至找不到下载它的地方。

如果有人有任何想法,请给我写信,因为我只是卡住了,不知道该怎么做。另外我不得不提一下,我是编程的初学者,如果我写了 smt,我很抱歉。愚蠢的:) 在此先感谢。

4

2 回答 2

0

听起来 Python 2.7 数学模块编译得很糟糕。也许没有正确包含 C 数学库。

在 Python 2.7 提示符下,尝试:

>>> import math
>>> math.__file__

然后,使用该文件名,在命令行(Python 之外)上,尝试

$ ldd <filename>

(注意:我不知道lddSun OS 上是否存在;否则,我希望您知道等价物。)验证 libm 是否存在。例如,在我的 Linux 机器上,我看到

linux-vdso.so.1 =>  (0x00007fffaffff000)
libm.so.6 => /lib/libm.so.6 (0x00007f3326ccf000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f3326ab3000)
libc.so.6 => /lib/libc.so.6 (0x00007f3326750000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3327180000)

如果您发现它丢失,请尝试在系统上找到它并将您的LD_LIBRARY_PATH或 Sun OS 设置为与所在目录等效libm,然后重试ldd <filename>

如果这次可行,请尝试xlwt再次安装。请记住,您总是需要设置您的LD_LIBRARY_PATH或等效的设置(例如,通过 shell 源文件)。

于 2013-03-06T14:04:36.783 回答
0

作为替代方案,以下是在xlwt本地安装 Python 2.4 的方法:

python setup.py build
python setup.py install --prefix=${HOME}/.local

请注意,该目录是Python 2.6/7 中选项.local使用的默认目录。--user

此安装xlwt,但不允许您运行它。现在,您需要PYTHONPATH正确设置:

export PYTHONPATH=${HOME}/.local/lib/python2.4/site-packages

这假定一个(ba)sh类型外壳。

python由于每次在新 shell 中运行时都需要执行此操作,因此最好PYTHONPATH在 shell 源文件中进行设置。

而且,当然,如果已经PYTHONPATH有一套($ echo $PYTHONPATH会告诉你),那就是

export PYTHONPATH=${PYTHONPATH}:${HOME}/.local/lib/python2.4/site-packages
于 2013-03-06T14:17:58.110 回答