pyinstaller:如何使用 pip 处理不必要的依赖项?



我有一个关于pip如何处理python依赖项而不是conda的问题。如果我执行以下操作:

pip install pandas

这会将pandasnumpy安装到我当前的环境中。但是,如果我这样做:

  • 为什么该命令安装numpy?为什么pip为我处理依赖项?

这很重要,因为我正在尝试"减轻"pyinstaller编译。我有一个小程序,它使用有限的pandas功能,我不需要所有的依赖项。

好吧,只需制作一个 pip 卸载 numpy 并运行然后运行 pyinstaller,如果您确信,则不需要该 numpy。

通常 pip 会安装所有依赖项,这些依赖项在包描述中列为必要的依赖项。

要了解依赖关系,请查看 pandas 的源代码: https://github.com/pandas-dev/pandas

查看文件setup.py( https://github.com/pandas-dev/pandas/blob/master/setup.py (

您将找到以下行:

"install_requires": [
"python-dateutil >= 2.6.1",
"pytz >= 2017.2",
"numpy >= {numpy_ver}".format(numpy_ver=min_numpy_ver),
],

这就是pip安装numpy的原因。 熊猫说,它需要numpy,所以pip遵循这些说明。

如果卸载 numpy 并运行 pyinstaller 不起作用,那么您可以发布一个单独的问题来询问如何说服 pyinstaller 不包含包。

Pyinstaller 为某些软件包配置了一些默认依赖项(据我所知(可能有一种方法可以覆盖它。

最新更新