【问题标题】:Why install Python packages为什么要安装 Python 包
【发布时间】:2017-05-24 07:09:26
【问题描述】:

为什么我们必须在使用 python 包之前安装它们?

我目前正在开发一个小型 python mysql 程序。我试图从 mysql 网页下载 python 连接器模块并简单地将其解压缩并将其放在我的代码的同一文件夹中。

我可以正确导入模块。

那么安装这些包有什么意义呢?我可以在不安装的情况下使用 matplotlib、numpy 等软件包吗?

是否可以将所有必需的软件包安装在一个文件夹中,以便我可以将其移动到另一台计算机并运行仅安装 CPython 的程序(我不想在这台计算机上安装任何软件包)?

【问题讨论】:

  • 当您解压到项目中的 Python 包依赖于另一个 Python 包时会发生什么?
  • 对于mysql,它不依赖于其他python包,所以没关系。
  • mysql-connector 可能是这样,但对于许多其他纯 Python 包,如 flask,情况并非如此。例如,numpy 不能通过复制/粘贴来安装,因为它使用其 setup.py 文件编译大量 Cython 代码。

标签: python anaconda packages


【解决方案1】:

没那么简单:-)

  • 有些包有依赖关系,你还需要下载并解压它们的依赖关系(你需要 pacakge x,而包 x 使用 y)pakcage manager 处理这些
  • 一些包有一些 c 代码(它们需要在使用前编译(ujson 或 postgres 模块)包管理器处理这些
  • 当您共享代码而不是共享依赖项时,您只需添加一个包含依赖项列表 (requirements.txt) 的文件,其他用户可以使用包管理器简单地安装所有依赖项

【讨论】:

【解决方案2】:

安装 python 包使我们能够在我们的系统上任何地方使用它。如果我们只是将包放在与我们的脚本相同的目录中,那么它可能会很好地工作,但仅适用于该目录中的脚本。

有些软件包还依赖其他软件包才能正常运行,安装软件包很可能会为您安装这些必备软件包。您也许可以手动执行此操作,但每次您想要运行它时都必须将它们都放在与您的脚本相同的目录中。

所以安装包是最简单的使用方式。

您没有安装它们,而且在某些情况下您不会将它们安装到您的系统上;例如,如果您将代码拆分为两个文件并在另一个文件的顶部导入一个文件。

【讨论】:

  • 是否可以将一个包连同这些必备包一起复制到我的程序文件夹中?我想将所有必需的库和我的代码移动到仅安装了 Cpython 的新计算机上。
  • 很大程度上取决于包。最好的办法是根据需要在新计算机上重新安装软件包。
【解决方案3】:

事实上,您并不需要在您的系统上安装软件包。 但是如果你安装它,你可以在你系统的任何地方使用这些包。 此外,您可以创建一个requirement.txt 文件以在其他计算机上安装您需要的所有软件包。您可以查看本手册https://pip.pypa.io/en/stable/user_guide/#requirements-files

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    相关资源
    最近更新 更多