两个版本的Python如何在Ubuntu上运行?

问题描述 投票:0回答:3

我是 Linux 新手,刚刚在我的笔记本电脑上安装了 Ubuntu 12.10。我使用Python,Ubuntu上有两个版本的Python,2.7和3.2。我的问题来了。如果我下载一个模块然后安装它,它将安装到哪个版本?我不知道像

sudo apt-get install python-virtualenv
这样的命令会将其安装到哪里,哪个版本。是否有一个默认版本,然后将所有内容安装到其中?

当我想使用

pip
安装某些软件包时,我仍然不知道它会匹配哪个版本,也不知道如何将软件包安装到我想要的版本。我搜索过 google 和 stackoverflow,知道它与
virtualenv
有关。我阅读了
virtualenv
文档,但我仍然不太明白。

python ubuntu pip
3个回答
2
投票

Debian Python 政策描述了打包模块应该如何与

dpkg
交互,以便为每个安装的 Python 版本安装、编译附加组件。

IIRC 政策规定

python
表示
python2
,并且您必须显式使用
python3
才能获取 v3。

在实践中,这意味着如果您想使用自己的个人库设置自己的 Python 3 环境,您将需要一个虚拟环境(有点像 vmware box 或 chroot,除了仅用于覆盖系统范围的 Python) .


0
投票

您可以通过发出以下命令来检查您正在运行哪个Python

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

用这个

/opt/local/bin/python --version

如果这是您想要指向的 python 版本,请在 python 脚本的最上面一行使用此路径。并使用

#!/opt/local/bin/python

0
投票

/usr/bin/
中有两个(或更多)二进制Python解释器。您运行的每个 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 脚本时,它将使用

$PATH_TO_ENV/bin
中的 Python 可执行文件。如果您可以随时删除
$PATH_TO_ENV/lib/site-packages
并且不用担心系统级别的任何垃圾,所有库都设置为
$PATH_TO_ENV

要设置 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
© www.soinside.com 2019 - 2024. All rights reserved.