0

我正在尝试在我的 Mac 上从源代码安装 Python。(OS X 10.6.2,Python-2.6.5.tar.bz2)我以前做过,这很容易,但出于某种原因,这次在./configure, and之后makesudo make install将一些东西放在我的主目录中而不是在 /usr/local/... 我期望的地方。.py 文件可以,但 .so 文件不行...

RobsMac Python-2.6.5 $ sudo make install
[...]
/usr/bin/install -c -m 644 ./Lib/anydbm.py /usr/local/lib/python2.6
/usr/bin/install - c -m 644 ./Lib/ast.py /usr/local/lib/python2.6
/usr/bin/install -c -m 644 ./Lib/asynchat.py /usr/local/lib/python2.6
[ ...]
运行 build_scripts
运行 install_lib
创建 /Users/rob/Library/Python
创建 /Users/rob/Library/Python/2.6
创建 /Users/rob/Library/Python/2.6/site-packages
复制 build/lib.macosx- 10.4-x86_64-2.6/_AE.so -> /Users/rob/Library/Python/2.6/site-packages
复制 build/lib.macosx-10.4-x86_64-2.6/_AH.so -> /Users/rob/Library/ Python/2.6/site-packages
复制 build/lib.macosx-10.4-x86_64-2.6/_App.so -> /Users/rob/Library/Python/2.6/site-packages
[...]

稍后,这会导致需要这些 .so 文件的导入失败。例如...

RobsMac Python-2.6.5 $ python
Python 2.6.5 (r265:79063, Apr 28 2010, 13:40:18)
[GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin 输入
“帮助” 、“版权”、“学分”或“许可”以获取更多信息。
>>> import zlib
Traceback(最近一次调用最后一次):
    文件“”,第 1 行,在
ImportError:没有名为 zlib 的模块

有什么想法有什么问题吗?

谢谢,罗伯

4

3 回答 3

2

多哈。我已经回答了我自己的问题。最近,出于某种愚蠢的原因,我创建了一个 ~/.pydistutils.cfg 文件。我忘了删除那个文件。它的内容是:

[安装]
install_lib = ~/Library/Python/$py_version_short/site-packages
install_scripts = ~/bin

make install调用setup.py,并且此文件覆盖了正常setup.py行为。

于 2010-04-28T08:41:11.813 回答
1

一般来说,当 Python 已经在你的系统上可用或者有包管理器会为你安装时,安装 Python(或直接从源代码中获取的任何东西)并不是一个好主意。我强烈建议您不要手动安装 Python... Mac OS X 10.6 Snow Leopard 自带 Python 2.6;如果你想要更新版本的 Python 2.6,那么你应该安装 MacPorts,并使用:

sudo 端口安装 python26 python_select

然后,您可以使用python_select来在系统版本和 MacPort 版本之间切换。

但是,如果您决定从源代码手动安装,那么执行此操作的方法是运行“make distclean”(或再次单独解压缩代码),然后运行“./configure --help”以获取完整列表配置选项。在 Mac OS X 上,它可能默认为 /usr/local 以外的其他位置,在这种情况下,您可以通过使用“./configure --prefix=/usr/local”调用配置来强制它安装在该位置。

于 2010-04-28T07:26:19.457 回答
0

你检查过参数或变量吗?可能有一个 make 变量可以用来覆盖该行为。无论如何,您是否尝试过MacPorts?对于您要完成的工作,这可能是一个更好的解决方案。

于 2010-04-28T07:21:54.640 回答