使用Enthought Python代替系统Python

9
我已经安装了Enthought Python Distribution,它基本上是一个带有用于数值和科学计算的附加库的Python发行版。现在,由于我使用Debian,已经安装了Python。如果我希望将Enthought Python用于所有工作,该怎么做?
目前,我正在使用一个简单的别名,比如:
alias python='/usr/local/share/enthought/bin/python'

这很好,但对于独立的Python脚本中的shebang指令(例如#! /usr/bin/env python),会失败。那么我该如何让系统使用Enthought Python(当然不会破坏任何东西!)。谢谢!
6个回答

12

我认为这是官方的做法,正如Enthought所推荐的:

export PATH=/usr/local/EPD/bin:$PATH

如果您安装到/usr/local/EPD,否则通用形式为

export PATH=/path/to/EPD/bin:$PATH 

这会将EPD二进制目录的路径添加到系统PATH变量中。 : 是某种连接符号。您可以每次在终端中运行此命令,也可以将其放入您的~/.bashrc文件中。


关键编辑:

事实证明,EPD实际上应该被追加到PATH中,否则可能会出现操作系统问题。请按照以下方式进行:

 export PATH=$PATH:/path/to/EPD/bin

5
如果你使用Debian,你可以在virtualenv中安装Enthought Python。Enthought将拥有自己的库,而不会干扰需要系统版本的其他Debian程序。你可以使用virtualenvwrapper使环境之间的切换更容易。还有一种方法是使用virtualenv在环境之间共享(某些)site-packages。请确保在virtualenv中使用pip而不是easy_install。Django人经常这样做。

这是正确的做法。它不会破坏标准命令和计算机基础设施,并且允许您通过在虚拟环境中执行操作轻松地使用EPD。 - nealmcb
你如何在虚拟环境中安装Enthoughts?我找不到任何文档来指导这个过程。任何帮助将不胜感激。谢谢。 - codingknob

2
将当前版本的Python链接到Enthought的版本。
ln -s /usr/bin/python[version]  /path/to/enthought/python

经过一些测试,这似乎不起作用。符号链接会破坏许多其他程序。例如,现在我无法导入gtk模块。必须与PYTHONPATH有关。 - pewfly
3
@pewfly - 你无法导入 gtk 因为它未安装。如果你想在你的 EPD 安装中使用它,那么你需要使用 Enthought Python Build 安装 gtk。通常情况下(特别是对于像 gtk 这样链接到编译库的东西),这意味着需要从源代码重新编译。仅仅更改你的 PYTHONPATH 通常行不通,因为你系统中的 python 版本可能完全不同。如果你正在使用 C 扩展库,并且它们是针对不同版本的 Python 构建的,那么可能会出现问题。 - Joe Kington
@JoeKington 给出了很好的建议。看起来最好不要干涉系统 Python。 - pewfly
1
@pewfly,当需要修改外部Python发行版时,与自己安装所需库相比,我总是持谨慎态度,因为出于这个原因。 - silent1mezzo
1
当然,您可以在EPD之上安装新的东西。只需确保使用EPD的Python构建它们(并链接到EPD的库等)。这并不太难,但您需要知道事物的位置,并且要对从源代码配置和构建事物有相当熟悉的了解。在大多数情况下,只需使用EPD的easy_install,或者如果您直接编译项目(如gtk),请确保它检测到正确的python二进制文件(在大多数情况下,这意味着它将检测到该python的正确头文件/库)。 - Joe Kington

2

我认为在Debian上安装软件包时最好使用以下方式:

apt-get install python-numpy python-numpy-doc python-scipy python-matplotlib ipython

不需要安装 Enthought Python Distribution。


1
是的,我确实先尝试了那个。但是Debian存储库中的软件包版本过于陈旧,无法满足我的需求。为了达到我的目的,我需要最新版本的matplotlib,而它并不在存储库中。不管怎样,还是谢谢。 - pewfly

1

嗯,我也遇到了这个问题。我首先尝试了Chad建议的在路径前加上Python的方法,但是这会导致其他Linux应用程序出现问题,因为它们使用的库不包括在Enthought中,而是包括在Linux Mint(或者你使用的其他发行版)中。特别是,如果我从终端加载Python,我成功地进入了Enthought的Python版本,但是运行“import pygtk”会导致错误(因为该库未安装在Enthought版本的Python中)。

有人知道如何使用PYTHONPATH来首先包含Enthought库,然后再包含标准的Linux库吗?这将是最佳的配置....


1
请看我上面的编辑。路径实际上应该是追加而不是前置的。 - Chad
另外,回答你的问题,在你的~/.bashrc中加入export PYTHONPATH=$PYTHONPATH:/path/to/standard/libraries。 - Chad

0

我使用别名。

alias python=~/Softwares/EPD_7.3/epd-7.3-2-rh5-x86_64/bin/python
alias ipython=~/Softwares/EPD_7.3/epd-7.3-2-rh5-x86_64/bin/ipython

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接