我对 linux 很陌生,所以在接下来的内容中可能会有一些明显的失误。
我昨天刚刚安装了最新的 Ubuntu LTS 版本,还有 pyCharm(Python 编辑器)。我按照他们网站上的命令继续更新 scipy-stack:
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
但是,现在在 pyCharm 中,我发现 scipy 没有更新。原来有几个可用的 python 安装:
$ sudo ls /usr/bin/python*
/usr/bin/python /usr/bin/python2-config /usr/bin/python3m
/usr/bin/python2 /usr/bin/python3 /usr/bin/python-config
/usr/bin/python2.7 /usr/bin/python3.4 /usr/bin/pythontex
/usr/bin/python2.7-config /usr/bin/python3.4m /usr/bin/pythontex3
$ which python
/usr/bin/python
我想使用 python2.7 作为我的主要/标准 python 参考,并更新它的包。我如何做到这一点?
默认情况下实际上只有两个python安装。2.7 和 3.4 在这里。所有
python-*
包都是为 Python 2.7 构建的。所有python3-*
包都是为 Python 3.4 构建的。您注意到的版本
scipy
与这些 Python 安装的总体布局无关,而是关于 Ubuntu 的工作方式。Ubuntu 不会为其开发人员推出的每个更新更新每个软件包。它只在有安全版本或使它变得更好的东西时才更新包。这为不想在已部署的系统上更改 API/ABI 的开发人员提供了稳定性。我怀疑您实际上根本不想使用 Ubuntu 的 Python 系统,而是想使用
virtualenv
. 它们使用系统的python
(或python3
)二进制文件,但您可以拥有环境的其余部分(site-packages
等等)。这为您提供了近乎完全的灵活性,可以安装任何来自 的任何版本pip
,而无需 root,也不会破坏系统管理的文件。通常这是创建一个
virtualenv
,“激活”它然后安装你的包的情况:注意上面这些包的名称可能不正确,
pip
会告诉你。另请注意,您可能会遇到一些关于缺少构建依赖项的错误。您从 Ubuntu 下载的需要编译的包(这些计算包中的大多数)已经过预编译。您需要满足他们的依赖关系。一种肮脏的做法是使用
apt-get build-dep
Ubuntu 版本。如果 Ubuntu 和 PyPi 版本之间的依赖关系有偏差,您可能需要安装其他东西。请参阅该项目的文档以找出您需要的内容。单调乏味,这将为 Python 2 和 3 安装 build-deps,但它只是磁盘空间,对吧?:) 如果愿意,您可以手动完成依赖项。