2013-04-11 59 views
0

我是Linux新手,刚在我的笔记本电脑上安装了ubuntu12.10。我使用Python,并且在ubuntu上有两个版本的Python,2.7和3.2。我的问题出现了,如果我下载了一个模块然后进行设置,那么将安装哪个版本?我不知道命令如sudo apt-get install python-virtualenv会将它安装到哪个版本,哪个版本。是否有默认版本,然后安装了一切?这两个版本的Python如何在ubuntu上运行?

而当我想用pip来安装一些软件包时,我仍然不知道它将匹配哪个版本,我不知道如何将软件包安装到我想要的版本。我搜索了google和stackoverflow,并且知道它与virtualenv有关。我读了virtualenv文件,但我仍然不明白。

希望有人能帮助我。

+0

我已经找到了答案上http://stackoverflow.com/questions/10763440/how-to-install -python3-package-via-pip,我发现如果在Ubuntu上只使用'sudo apt-get install python3-pip',然后使用pip-3.2,那么软件包将被正确安装。 – zhangyangyu 2013-04-11 05:31:14

回答

2

Debian Python Policy描述了打包模块应该如何与dpkg进行交互,以便在Python中为每个安装的版本安装,编译插件。

IIRC政策规定python意味着python2,您必须明确使用python3才能获得v3。在实践中,这意味着如果你想用你自己的个人库建立你自己的Python 3环境,你将需要一个虚拟环境(有点像vmware盒子或chroot,除了重写系统 - 宽Python)。

0

您可以检查哪些蟒蛇你通过发出以下命令

which python 
[output-path]eg: /opt/local/bin/python 

使用此

/opt/local/bin/python --version 

运行。如果这是你想要的Python版本在使用的这条路径指向你的python脚本的最上面一行。并使用

#!/opt/local/bin/python 
0

/usr/bin /中有两个(或多个)二进制python解释器。您运行的每个蟒蛇可执行脚本(manage.py等)指定的开始是这样的

#!/usr/bin/python2.6 

这是系统级口译。他们在

/usr/local/lib/pythonXX/site-packages 

使用virtualenv你可以自由拥有自己的沙盒python环境。每个环境都会有类似Unix的目录结构,包括

$PATH_TO_ENV/lib/site-packages #library home 
    $PATH_TO_ENV/bin    #binaries home 

当你激活的virtualenv,然后运行任何Python脚本将使用Python可执行从$ PATH_TO_ENV /箱。如果您随时可以删除$PATH_TO_ENV并且不担心系统级别的任何垃圾,则所有库都将设置为$PATH_TO_ENV/lib/site-packages

要建立我用这样的virtualenvs:

sudo easy_install pip; 
    sudo pip install virtualenv; 
    sudo pip install virtualenvwrapper; 

    echo "export WORKON_HOME=~/Envs" >> ~/.bashrc; 
    echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc; 
    . ~/.bashrc; 
    mkdir -p $WORKON_HOME; 

当使用PIP你可以明确地指定版本号 前。

pip install django-debug-toolbar>=0.9.4,<1.0 

如果你的virtualenv包内和所有它的依赖将被安装在

$PATH_TO_ENV/lib/site-packages 
相关问题