python用pyinstaller打包后无法判断是否拥有第三方库
我是python初学者,小小白一个,想写个代码自己装第三库,比如我输入一个已经安装好的库,就显示已安装,输入一个没安装的库,会自己帮我安装但是发现一个问题
def isinstalled(item):
code = 'import ' + item
try:
exec(code)
except ImportError:
return False
else:
return True
def isinstalled(item):
try:
__import__(item)
except ImportError:
return False
else:
return True
上面那个两个函数(其实是一个,但是遇到同样的问题)在pycharm运行后可以有效判断我有没有安装过我输入的库名,但是用pyinstaller打包出来整个代码后,发现运行和pycharm运行的不一样,发现不管输入已经安装过的库还是还没安装的库这个函数都只返回False,然后我上网搜索资料后,尝试把函数改成
def isinstalled(item):
all = os.popen('pip list').read()
if item in all:
return True
else:
return False
整个代码用pyinstaller打包后,运行exe和在pycharm里面运行的效果相同,但是由于是遍历整个库名时间会很长,上面那个函数就很快,但是打包出来就只会返回False,有大佬知道是为什么吗?