0

我是 Linux 新手,刚刚在我的笔记本电脑上安装了 ubuntu12.10。我使用 Python,ubuntu 上有两个版本的 Python,2.7 和 3.2。我的问题来了,如果我下载一个模块然后设置它,它将安装到哪个版本?我不知道诸如sudo apt-get install python-virtualenv将其安装到何处,哪个版本之类的命令。是否有默认版本,然后安装了所有内容?

而当我想用pip安装一些包的时候,我仍然不知道它会匹配哪个版本,也不知道如何将包安装到我想要的版本。我搜索了 google 和 stackoverflow 并知道它与virtualenv有关。而且我阅读了virtualenv文档,但我仍然没有清楚地理解它。

希望有人能帮助我。

4

3 回答 3

2

Debian Python 政策描述了打包的模块应该如何交互,dpkg以便为每个安装的版本(如果是 Python)安装、编译等附加组件。

IIRC 政策规定这 python意味着python2您必须python3明确使用才能获得 v3。

实际上,这意味着如果您想使用自己的个人库设置自己的 Python 3 环境,您将需要一个虚拟环境(有点像 vmware box 或 chroot,只是为了覆盖系统范围的 Python)。

于 2013-04-11T04:24:20.370 回答
0

您可以通过发出以下命令来检查您正在运行的 python

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

用这个

/opt/local/bin/python --version

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

#!/opt/local/bin/python
于 2013-04-11T04:35:22.193 回答
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 时,您可以明确指定版本号 ex。

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

如果您在 virtualenv 包中,并且它的所有依赖项都将安装在

  $PATH_TO_ENV/lib/site-packages 
于 2013-04-11T04:38:02.170 回答