为初学者提供有关 OSX 上 python 包管理的常识性建议

发布于 2024-10-15 09:32:27 字数 1431 浏览 4 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

深者入戏 2024-10-22 09:32:27

在我看来,处理 python 包的最佳方法是拥有一组与系统 Python 分开的 Python 安装,每个版本对应一个您需要的版本。
这样我就不会用旧版本的包污染主 python,并且我可以删除它们并重新安装它们,而我的任何项目都不会出现问题。

详细信息:

在 OS X 上,使用 Macports 版本就可以了。自制程序可能也是如此,尽管我从未使用过它。 (在 Linux 上,我将 Python 从源代码安装到 /opt/pythonxx/ 中,例如 /opt/python25/、/opt/python26/、/opt/python27 和 /opt/python31。)

然后我从不将任何软件包安装到这些 Python 中,但 virtualenvdistributepip 除外,我在所有这些 Python 中都安装了它们。当我想为项目安装包时,我使用我使用的 python 版本为该项目创建一个 virtualenv:

$ cd /home/projects
$ /opt/python27/bin/virtualenv acoolproject
$ cd acoolproject
$ ./bin/pip install ThepackageIneed.

当您单独安装每个项目依赖项时,可以避免依赖项问题以及版本冲突和版本混乱。

您可以使用 virtualenv 启用和禁用环境,我倾向于从不这样做,而是显式使用 python 可执行文件:

$ ./bin/python main.py

或者

$ /home7projects/acoolproject/bin/python

如果我需要无法仅使用 pip 安装的东西,例如 Plone、nginx 或 varnish,我使用 zc .buildout 进行可复制的环境配置,zc.buildout 也将独立运行,因此主 python 中不会安装任何包。

In my opinion, the best way to handle python packages is to have a set of Python installations separate from the system Python, one for each version you need.
This way I do not pollute the main python with old versions of packages, and I can delete them and reinstall them without any of my projects having problems.

Details:

On OS X, using the Macports versions are fine. The same is probably true for homebrew, although I never used it. (On Linuxes I install Python from source into /opt/pythonxx/, for example /opt/python25/, /opt/python26/, /opt/python27 and /opt/python31.)

I then never install any packages into these Pythons, with the exception of virtualenv, distribute and pip, which I install in all of them. When I want to install a package for a project, I make a virtualenv for that project with the python version I use for it:

$ cd /home/projects
$ /opt/python27/bin/virtualenv acoolproject
$ cd acoolproject
$ ./bin/pip install ThepackageIneed.

As you install each projects dependencies separately, you avoid dependency issues and version conflicts and version confusion.

You can enable and disable environments with virtualenv, I tend never to do that, I use the python executable explicitly instead:

$ ./bin/python main.py

or

$ /home7projects/acoolproject/bin/python

If I need things that you can't just install with pip, like Plone, or nginx or varnish, I use zc.buildout to make a replicatable environment configuration, zc.buildout will also run in isolation, so no packages gets installed in the main pythons.

丘比特射中我 2024-10-22 09:32:27

如果您使用 Homebrew,您可能需要使用 pip 来安装 Python 包。 pip 可以通过 Homebrew 安装,但 Homebrew 不包含其他 Python 包的公式。但使用 pip 安装软件包非常简单——就像

$ pip install <package>

(软件包名称可以在 PyPI 上找到)一样简单。如果您通过 Homebrew 安装了 pip,那么您只需要做这些。

If you're using Homebrew, you'll probably want to use pip to install Python packages. pip can be installed via Homebrew, but Homebrew doesn't include formulae for other Python packages. But it's pretty easy to install packages using pip -- as simple as

$ pip install <package>

(The package name can be found on PyPI.) If you installed pip via Homebrew, that's all you need to do.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文