gpt4 book ai didi

python - Python 3.3 中的包管理——最好使用的工具是什么?

转载 作者:行者123 更新时间:2023-11-28 22:51:18 25 4
gpt4 key购买 nike

我是 Python 的新手,正在一个非常小的 XML 解析脚本中使用它。我对各种 Python 版本及其包管理器感到非常困惑。

我正在使用 Ubuntu 13.10,它似乎预装了全新安装的 Python2.7 和 Python3.3。

在 virtualenv 之外,我可以通过提示访问两个版本:

>which python
/usr/bin/python

>which python2
/usr/bin/python2

>which python3
/usr/bin/python3

前两个符号链接(symbolic link)到同一个 python2.7 二进制文件,第三个符号链接(symbolic link)到 python3.3 二进制文件。这一切都非常有道理。

我也明白python3.3自带pyvenv为python3.3创建virtualenvs

>pyvenv-3.3 mynewproject

使用 bin 目录和“独立的”python3.3 解释器等创建一个新的虚拟环境。要使用这个环境,我只需:

>source <path-to-mynewproject>/bin/activate

一切都很好,明白了。很有道理。现在虽然困惑了。我使用 easy_install 吗?皮普?安装.py?分发?这些无数的包管理器是什么?我从哪里得到它们?它们适用于 Python2.7 还是 Python3.3?或两者?哪些可以在我的新 virtualenv 中使用?我关心的?

简而言之,考虑到我只会进行 Python3.3+ 开发,但也考虑到我不想破坏无疑需要 Python2.7 包的系统,什么是规范的(最好的,批准、支持)我进行包管理的方式。

说真的,这到底是怎么回事?完全糊涂了。

感谢您的所有协助。

最佳答案

  1. 用 virtualenvs 隔离一切
  2. pipeasy_install 都是包管理器,你可以同时使用它们,但我更喜欢 pip
  3. setup.py 只是 distutils 的脚本,pipeasy_install 都使用 setup.py 来安装软件包。

如果你在 virtualenvs 中运行你的 python,它会阻止你卸载或更新会破坏你系统的包。那么 pip 和 easy_install 之间的选择就不是那么清楚了。理论上 pip 较新,但由于某些原因,它们安装包的方式可能适用于 pip 而不是 easy_install。当您必须处理必须编译的 native 库时,就会发生这些问题……很难说哪个更好,但有效的应该可以解决问题,因为它们无论如何都在同一目录中安装包。

没有必要使用 setup.py 安装包,除非它们在 pypi 中不可用。如果您将 pip 传递给它所在的目录,它也会安装带有 setup.py 的包。

如果您制作了一个软件包,请确保它可以使用 setup.py 与 distutils 安装。然后就可以发布到pypi了。

此外,据我所知,许多教程并没有使用 virtualenvs,甚至可能在他们的教程中写下如下内容:

sudo pip install ..
sudo easy_install ..

请注意,如果您使用的是 virtualenv,则永远不必使用 sudo,如果您确实使用 sudo,则可能会在系统范围内安装软件包,因为它不会从 virtualenv 中的用户运行,而是从根。

建议阅读 Lukas Graf : http://guide.python-distribute.org/introduction.html#the-packaging-ecosystem

关于python - Python 3.3 中的包管理——最好使用的工具是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21658911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com