我尝试从源代码编译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所提到的。 - Laogeodrittwhich
是作为程序实现的,而不是 shell 内置的,并且可能无法告诉您 shell 实际运行的内容。最好查看任何命令告诉您 shell 的真正想法。对于bash
,该命令是type
。查看help type
以获取更多信息。 - Mike DeSimonetype python
仍然得到相同的结果。 - mpanghash -r
可以清除它)。你可能还想尝试type -a python
,它将按顺序列出路径中的所有Python。 - Mike DeSimone