我有一个关于pip如何处理python依赖项而不是conda的问题。如果我执行以下操作:
pip install pandas
这会将pandas
和numpy
安装到我当前的环境中。但是,如果我这样做:
- 为什么该命令安装
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 为某些软件包配置了一些默认依赖项(据我所知(可能有一种方法可以覆盖它。