如何在Ubuntu上找到Python的安装目录

我刚从Windows环境迁移过来。我已经在一个单独的目录中安装了Python 3.2。在Ubuntu shell中,我如何获取Python的安装路径?
有没有办法让shell在运行时知道/选择要用于进一步代码执行的Python版本?
在Ubuntu Linux中是否也有环境变量和搜索路径之类的东西?
5个回答

第一个问题:

which python 虽然通常是 /usr/bin/python 对于2.7版本。

第二个问题:

从终端和python2.7运行:python2.7 yourfile.py
类似地,对于3.2版本:python3.2 yourfile.py,尽管3.2版本不是默认安装的。(你可以使用apt-get install python3.2进行安装。)

python yourfile.py 的行为取决于你的Python解释器使用的是哪个替代方案。你可以通过以root身份发出update-alternatives python命令(或者使用su)来更改它。

第三个问题:

环境变量是与shell相关的,但你可以使用echo $variable将其输出,并使用variable=value(来自bash)来设置它们。搜索路径简单地称为PATH,你可以通过输入echo $PATH来获取你的搜索路径。

希望这对你有所帮助。


谢谢@Wolfer!回答确实很有帮助,非常感谢。如果像我这样有人更改了默认的Python 3安装路径,那么怎么办呢?如何检查路径并使用这个版本运行? - avimehenwal
此外,我在 $echo $variable 中没有收到任何输出。 - avimehenwal
3which python2.7which python3.2 将返回每个解释器的安装路径(如果未安装,则不返回任何内容)。 - Wolfer

如果你想找到一个程序的位置,你可以直接使用whereis <program>
在你的情况下运行:
whereis python2.7
whereis python3.2

要找到apt-get复制并安装的每个文件,请使用以下命令:
dpkg -S python2.7
dpkg -S python3.2

但也许推荐将其保存在文本文件中,因为输出内容太大了。
dpkg -S python2.7 >log.txt
gedit log.txt

使用Python 3.2运行.py文件

python3.2 <file.py>

1谢谢 @Thomas!这个命令'whereis python2.7'显示了很多路径,但我认为必须有一个单一的Python安装目录! - avimehenwal
1dpkg -S python2.7 显示所有 python2.7 的文件。"/usr/lib/python2.7" 是 python2.7 的目录。 - Thomas15v
我有点困惑, /usr/bin/python 是我们默认的 shebang,而 python 包却位于 /usr/lib/python2.7?这是真的吗? - avimehenwal
/usr/lib/python 是一个程序。在Linux中,每个文件都可以是一个程序。如果你来自Windows,可能会感到困惑。 - Thomas15v

这里有一个简单的方法,在终端上运行:
type -a python

或者

type -a python3

1这是一个很棒的回答。老派的bash来拯救:D 谢谢你的分享。 - avimehenwal
1关于type命令以及它的作用,特别是使用-a参数的一些详细说明会很有帮助。 - Danny Bullis

对于Python2.7
whereis python2.7 

针对 Python3.2

whereis python3.2

对于Python 3.8
which python3

或者

whereis python3

并没有真正为其他答案增添任何内容... - Ravexina
@Ravexina 我将Python 3.8进行了一些简化。 - user1114053

在Python解释器中运行这两个命令:
>>> import sys
>>> sys.path

其中一个输出将是安装路径。