python关于import的问题

我发现有些库压根是没法单独提取里面的函数使用的。比如cv2,我就用了以下4行代码
from cv2 import imread,imshow,waitKey
image = imread("st.jpg")
imshow("img", image)
waitKey(0)
亲测pyinstaller打包以后,它将整个cv2都打包进去了。所以使用from cv2 import xx和直接import cv2没有任何区别。不知道我说的对不对?

【有帮助请采纳】

应该是有区别的,对于你这个问题,虽然只引入部分函数,但可能这部分函数还关联了cv2这个库中其他的函数或者类,要使得这些函数能运行,它们也必须得打包进来,而那些被关联的函数或者类可能又关联了更多其他的函数和类(有点像套娃),这样就使得几乎整个cv2库要被打包进来
如果你只是打包一些比较独立的函数,或许不会有这种问题产生,比如导入math库中的函数,应该不会有整个math库那么大
以上都是个人经验,不一定正确
顺便一提:Pyinstaller打包Python文件占用存储最小的情况(不带库和函数)都有7~8MB

【有帮助请采纳】

1.直接使用import时,如果需要使用到导入模块内的属性和方法,必须使用模块名.属性和模块名.方法的方式进行调用
2.使用from...improt...时,可以直接使用模块内的属性和方法,相当于该模块被直接导入到局部名字空间中去了,所以他可以直接使用,不需要加模块名进行限定。

这篇文章:【Python】import自己的模块报错 也许能够解决你的问题,你可以看下
你还可以看下python参考手册中的 python-importlib --- import 的实现