清理 Python 模块并在 Mac OS X 上重新开始

16
我不是完全的新手,但我尝试安装模块已经很长时间了。现在我想重新开始安装Python和所有我需要的模块,以便真正理解它们。我的问题是其中一些模块可以导入(import),但大多数安装到错误的site-packages或者无法导入,可能是因为我搞乱了系统/Python。我曾尝试使用PYTHONPATH和PATH来正确设置它,但从未成功。
因此,我的问题如下:
  1. 有没有一种方法可以确保我能够清理一切并从头开始安装? 最好不用重新设置Mac OSX。
  2. 有没有一种方法可以将所有模块安装在正确的位置(无论目录是什么,我都不在意,它应该只是工作)?
  3. 有没有一个好的逐步说明如何安装模块的方法。我不仅是指使用easy_install、pip install等信息,而是要完全理解我需要考虑什么,需要把它们放在哪里,为什么这些模块在某些目录中被识别,如何找到它们,最重要的是最常见的陷阱是什么以及如何避免它们。
我也尝试过Macports和其他各种类似的安装方式,但即使其中一些方法有效,而且我确信这些工具真的很棒,大多数都需要hack才能使它们工作。
如果有人可以推荐一个良好且稳定的方法来一次安装多个模块,那将非常有用。
非常感谢!!!
对于问题的冗长表示歉意。
3个回答

5

Buildoutvirtualenv应该是你正在寻找的。

Buildout帮助您配置Python安装,而virtualenv允许您将多个不同的配置隔离开来。

这里有一篇很好的博客文章,解释如何将它们一起使用。

另外,请参阅这个问题:Buildout和Virtualenv


3
您可以使用python.org安装程序这里在OS X上安装最新的Python 2和/或Python 3,它们将与您已安装或由Apple随OS X一起提供的任何其他Python版本共存。要安装软件包,对于每个Python实例,请先安装Distribute,它将安装特定于版本的easy_install命令,即easy_install-2.7easy_install-3.2。许多人更喜欢使用pip来管理软件包; 您可以使用easy_install安装特定于版本的副本。如果您想要更高级的功能,也可以安装virtualenv,但是在OS X上提供的Python框架构建所提供的隔离并不像大多数其他平台那样必要。

-3
  • 有没有一种方法可以将所有模块安装在正确的位置?

    下载并解压缩/解压缩gzip等模块源代码(大多数模块都以gzip形式提供,位于http://pypi.python.org/pypi),然后使用--prefix设置为每个安装的相同内容运行configure

        [ 11:06 jon@hozbox.com ~ ]$ ./configure --prefix=/usr/local
    

    /usr/local通常是默认设置,但指定它不会有害,并确保您安装的每个模块都将放置在/usr/local/lib/python/...中。

  • 有没有一个关于如何安装模块的良好逐步说明?

    Python网站有一个很棒的页面叫做:Installing Python Modules


http://pypi.python.org/pypi
http://docs.python.org/install/index.html


2
在 Mac OS X 上,/usr/lib 中未安装 Python。此外,您不应该删除 /usr/lib 中的任何内容,因为它由 Apple 管理,可能会瘫痪您的系统。就此而言,在任何使用软件包管理器的 Linux 系统上通常也不应该这样做。 - Ned Deily
@NedDeily 实际上,/usr/lib/python2.7 只是一个指向 /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 的符号链接,但是 /usr/lib/python2.7 更快速地进行 cd 操作。但你是对的;对于那些不熟悉 *nix 文件系统的人来说,除非你确切知道自己在做什么,否则不应该在 /usr/lib 中随意操作。 - chown
非常感谢。我已经检查了/usr/lib/,只有这个符号链接。而且我现在非常了解Unix文件系统。我的问题是Python无法识别我在/Library/Python/2.6/site-packages中的模块,但可以在/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6中识别。我知道PATH和PYTHONPATH之间的区别,并将其放在正确的路径上。但它仍然无法识别。每次安装时,它都会安装到错误的站点包中,然后我将其复制粘贴到其他位置。然后其中一些可以工作。这里我有另一个问题。 - digit
什么是模块?我能够通过复制粘贴解压并放置在sitepackage中吗?我将尝试使用上面提到的--prefix。如果这样可以,我会很高兴。有趣的是,我将django目录放在pythonpath中,它居然起作用了。非常令人困惑 :) - digit
5
如果你删除/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7,就会破坏你的系统,因为其中包含了不仅是你添加的内容,还包括Python标准库和其他与OS X自带程序有关的内容。 - keturn

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