【发布时间】:2015-09-30 11:17:42
【问题描述】:
我尝试从源代码编译 Python 2.7。
这是我的命令:
./configure --prefix=/my/local/dir --exec-prefix=/my/local/dir --enable-shared --with-pydebug
make
make install
而which python的输出是/my/local/dir/bin/python,是正确的。
但是当我运行python --version 时,我看到的是Python 2.7.3 而不是Python 2.7.10。
Python的系统版本是2.7.3。会不会是 Python 的系统版本以某种方式将自身与本地编译版本联系起来?还是我做错了什么?
编辑:
./my/local/dir/bin/python --version 的输出也是Python 2.7.3
编辑 2:
似乎如果我去掉 --enable-shared 标志,它将生成正确版本的 Python,但我需要该标志才能让我的其他软件工作。
【问题讨论】:
-
如果你运行
/my/local/dir/bin/python --version会发生什么?如果这种情况是正确的,那么你的 shell 只是缓存了python的位置,正如 o11c 提到的那样。 -
@Laogeodritt 输出还是
Python 2.7.3 -
在某些系统上,
which是作为程序实现的,而不是内置的 shell,并且可能不会告诉您 shell 将真正运行什么。最好查看告诉您 shell 真正想法的任何命令。对于bash,该命令是type。查看help type了解更多信息。 -
@MikeDeSimone
type python仍然给出相同的结果 -
它会告诉你路径是否被散列(
hash -r会清除它)。您可能还想尝试type -a python,它将按顺序列出所有路径上的蟒蛇。
标签: python linux python-2.7 ubuntu