2017-05-24 48 views
-2

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

我目前正在研究一个小型的python mysql程序。我试图从mysql网页下载python连接器模块,只需将其解压缩并将其放在我的代码的同一文件夹中即可。

而且我可以正确导入模块。

那么安装这些软件包有什么意义?我可以在不安装它们的情况下使用像matplotlib,numpy这样的软件包吗?

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

+2

当您将一个Python包解压到您的项目中时,会发生什么情况取决于另一个Python包? – Blender

+0

为mysql,它不依赖于其他python包,所以没关系。 –

+1

对于'mysql-connector'来说可能是正确的,但对许多其他纯Python包(比如'flask')来说并不是这样。例如,numpy不能通过复制/粘贴来安装,因为它使用'setup.py'文件编译了大量的Cython代码。 – Blender

回答

1

它不是这么简单:-)

  • 一些软件包的依赖关系,你还需要下载并提取它们的依赖(需要pacakge x和包X使用Y)pakcage管理器处理的是
  • 某些软件包有一些c代码(它们需要在使用前进行编译(ujson或postgres模块))包管理器处理该代码时共享代码而不是共享依赖关系时只需添加一个包含依赖关系列表的文件(requirements.txt)和其他用户可以使用软件包简单地安装所有依赖项经理
+0

是否可以避免任何依赖关系的安装?我想将所有依赖项和我的代码压缩到一个文件中,以便其他人可以直接解压缩并直接运行我的程序,而无需安装依赖项。 –

+0

检查此链接http://python-guide-pt-br.readthedocs.io/en/latest/shipping/freezing/ – aliva

+0

非常感谢你 –

0

安装python包使我们可以在我们的系统上使用它任何地方。如果我们只把程序包放在与我们的脚本相同的目录下,那么它可能会工作,但只适用于该目录中的脚本。

某些软件包也依赖于其他软件来正常运行,并且安装软件包可能会为您安装这些必备软件包。您可以手动执行此操作,但是每次运行脚本时都必须将它们全部放入脚本所在的目录中。

因此安装软件包是最简单的使用方法。

你不要来安装它们,在某些情况下你不会将它们安装在你的系统上;例如,如果您已将代码分割为两个文件并将另一个文件导入另一个文件的顶部。

+0

是否可以将软件包与这些必备软件包一起复制到我的程序文件夹中?我想将所有必需的库和我的代码移到仅安装了Cpython的新计算机上。 –

+0

它非常依赖于包。你最好的选择就是在你需要的时候简单地在新电脑上重新安装软件包。 –

0

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

相关问题