你能在终端上拥有多个python吗?

时间:2011-10-27 21:04:35

标签: python django

我对运行我的django应用程序的情况感到有点困惑。当我使用命令python manage.py runserver时,我没有从服务器获得适当的响应。但是,当我使用python2.6 manage.py runserver时,服务器实际运行。

有人可以帮助我解决这个困惑,并建议我如何简化这个问题?理想情况下,我不想要不同版本的python,只希望能够输入python manage.py runserver

3 个答案:

答案 0 :(得分:2)

是的,您可以将多个版本的Python并排放置在您的计算机上。

听起来主机上的python符号链接到python2.6以外的版本。您可以通过运行以下来找到此版本:

python --version 

...或...

python -V

......如果那不起作用。

设置默认的Python版本取决于您首先安装Python的方式。

对于Mac OS X,请参阅How can I change the default Python version on Snow Leopard?

答案 1 :(得分:2)

是。这很常见。您可以使用which找到可执行文件的位置,并使用ls解析符号链接。

$ ls -l `which python`
lrwxrwxrwx 1 root root 9 Jul 13 18:50 /usr/bin/python -> python2.6
$ ls -l `which python3`
lrwxrwxrwx 1 root root 9 Jul 27 22:24 /usr/bin/python3 -> python3.1

在Debian和其他一些系统上,您可能需要解析多个符号链接。

$ ls -l `which nc`
lrwxrwxrwx 1 root root 20 Oct  7 15:16 /bin/nc -> /etc/alternatives/nc
$ ls -l /etc/alternatives/nc
lrwxrwxrwx 1 root root 15 Oct  7 15:16 /etc/alternatives/nc -> /bin/nc.openbsd

如果您只想输入python并获得所需的版本,请创建一个别名。在.bashrc文件中添加一行(或者保留这些行的任何地方):

alias python=python2.6

请注意,这不会影响脚本:如果在脚本中运行“python”,它将获得旧版本,而不是别名。别名仅供交互使用。

答案 2 :(得分:2)

是的,可能有两个版本的python。我发现使python执行python2.6(不破坏其他任何人的其他版本)的最简单方法是使用别名。为此,只需编辑以下内容并将其添加到~/.profile文件中:

alias python=/path/to/your/python2.6

注销并重新登录,当您运行python时,它应该执行正确的二进制文件。如果您希望还原,只需从~/.profile删除此行即可。