1

我正在尝试make具有所需依赖项 JCC 的 PyLucene。(JCC 是一个从 Python 调用 Java 的代码生成器。)

注意:操作系统为 Mac OS X 10.7.4。

包含的 make 脚本运行:

$ /usr/bin/python -m jcc

输出:

/usr/bin/python: No module named jcc

但运行以下是成功的:

$ python -m jcc

即使 python 指向 /usr/bin/python:

$ whereis python

输出:

/usr/bin/python

python别名指向 时/usr/bin/python,这些结果有何不同?

4

2 回答 2

1

您的问题可能是哈希表。Bash 保留了一张记住的命令表——它不会$PATH每次都搜索。如果在设置python之前被调用,alias那么哈希表将被使用。虽然我的理解是在搜索哈希表之前扩展了别名,但是手册页并不清楚这一点。

hash通过使用命令列出哈希表来检查这一点。使用 重置哈希表hash -d python

但是,我注意到您正在使用make,尽管您的示例是命令行。别名不会被子进程继承(默认情况下),如果这样做的话,它可能会成为支持的噩梦。所以make不使用你的别名。

于 2012-11-27T10:32:21.143 回答
1

尝试python --version在两者上运行,看看它们是否相同。

于 2012-11-27T05:30:34.613 回答