我需要在我的 python2.5.4-32 位上的 Ubunto10.4-32 位(编辑:64 位)机器上安装 PIL
(python 图像库)。
这个问题也与我猜的任何其他源包有关(我需要的是 RPyC
、psyco
和 numpy
)。
我下载了源代码因为我找不到任何整洁的包来完成这项工作并且做了
sudo python2.5 setup.py install
。
输出:
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Traceback (most recent call last):
File "setup.py", line 9, in <module>
import glob, os, re, struct, string, sys
File "/usr/lib/python2.5/struct.py", line 30, in <module>
from _struct import Struct, error
ImportError: No module named _struct
但是
echo $PYTHONHOME
/usr
好吧,在文件 struct.py
中有一行 from _struct import Struct, error
这是 python 源代码本身的一部分,所以我真的很想知道 python 安装有什么问题,因为代码无法导入模块。
我通过以下方式安装了 py2.5.4:
./configure --prefix=/usr
make altinstall
(使用 make altinstall
因为我需要 py26 作为默认的 python 解释器)
编辑:这个问题可能是由于错误地使用 64 位平台 :) 和 32 位 python2.5 引起的。所以无论如何,通过减少不必要的复杂性解决了问题 - 切换到 32 位机器并将应用程序移植到 python 2.6。
最佳答案
简而言之:
首先尝试使用 Ubuntu 存储库。如果该软件包不存在,请使用 easy_install
。如果全部失败,请将包直接下载到您的源文件夹。
Ubuntu 存储库(apt-get 方法)
Ubuntu(10.04 及更新版本)的大多数主流软件包都可以通过 apt-get
获得。命名约定是 python-NAME
,例如python-imaging
或 python-scipy
。
这是最好的方法,因为 native 包管理器将处理任何依赖项和更新问题。
运行 apt-cache search python | grep "^python-"| less
查看适用于您的系统的软件包列表(我的 10.04 机器上有超过 1,200 个)。
设置工具
对于不属于 Ubuntu 存储库的软件包,您可以使用 python easy-install
工具。首先,安装设置工具:
sudo apt-get install python-setuptools
你可以安装任何 Python 包,例如colorworld , 使用 easy-install
:
sudo easy_install colorworld
这为您提供了一定程度的保护(例如,处理依赖项),但更新通常是手动的,在新计算机上重新安装所有这些包真的很痛苦。
手动下载
您始终可以将源代码下载到某个目录并将其添加到您的PYTHONPATH
。当您只需要评估一个包或应用一些快速而简单的解决方案时,这是最好的方法。
关于python - 无法从源代码安装 python 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5858170/