将Python 3.3设为默认的Python 3解释器,而不是3.2。

所以,为了简单起见。Ubuntu 12.10预装了Python 3.2,并且链接到"python3"。我下载了Python 3.3,它的命令是"python3.3"。然而,我从synaptic下载了适用于Python 3的pySide。在Python 3.3上使用"from PySide.QtCore import *"会失败。但是,当我运行"python3"(也就是3.2)时,一切都正常工作。Synaptic只安装了适用于Ubuntu中Python 3默认版本3.2的库。我如何强制Synaptic安装适用于Python 3.3的模块?
谢谢
3个回答

你可以自定义你的python3别名。为此,你可以在.bashrc文件末尾添加"alias python3='python3.3'"来修改它。这个shell脚本可以帮你完成这个任务:
#!/bin/bash

cd ~

# Create the ~/.bashrc file if it does not exist
if [ ! -f ./.bashrc ]; then
    touch .bashrc
    chmod 755 .bashrc
    echo "#!/bin/bash" >> .bashrc
fi

# Append the customed alias
echo " " >> .bashrc
echo "alias python3='python3.3'" >> .bashrc
echo " " >> .bashrc

# Reload settings in the .bashrc script
source .bashrc

谢谢。这样做会将模块从Synaptic安装到Python3.3目录中,对吗? - user1873947
4嗯,这确实让"python3"运行"python3.3",但是在从synaptic安装python3模块之后,它仍然只安装到python 3.2...一定有一些与3.3位置的符号链接相关的奇妙之处。 - user1873947
我遇到了同样的问题,试图下载软件包,但它们默认安装到错误的位置。 - ssb

您可以通过设置适当的环境变量在同一系统上运行不同的Python版本。这将使您能够在本地安装比Synaptic软件包管理器提供的更高版本的Python。例如,在一个文件(mysetup)中设置如下内容:
TK_LIBRARY=/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/site-packages/PIL:/usr/lib   
TKPATH=/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/site-packages/PIL:/usr/lib 
TCL_LIBRARY=/usr/lib 
export TCL_LIBRARY TK_LIBRARY TKKPATH   

export PYTHONPATH=/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-stdwin:/usr/lib/python2.7/lib-dynload:/usr/lib:.     

将它们与 . mysetup 一起放入您的环境中。

PySide 包的文件列表, 似乎只有针对Python 3.2 编译的版本。您可以选择以下方式:

  • 暂时使用3.2 版本。3.3 版本可能会在13.04 中提供。
  • 下载 PySide 的源代码(使用 apt-get source pyside),然后重新编译为 Python 3.3 版本。