你资源管理器打开看看,pyinstaller是不是在根目录,是否忘记解压缩了,不是.exe而是压缩包,文件名是不是pyinstaller
pyinstaller是个打包应用,首先你得确保自己安装,根据命令行提示为没有正确安装或者没有加入环境变量。
可以执行
pip list
可以查看是否安装pyinstaller,如果没有安装,可以通过
pip install pywin32 wheel pyinstaller
安装,然后再重试你的命令。
上述代码仍存在的一个缺陷是,最终底层列表的长度和队列中保存过的最多元素数目成正比,而非和当前队列中的元素个数成正比,这可能会造成一定程度的内存浪费。
为了解决上述问题,可以在队列中元素个数小于底层列表长度的1/4{\left. 1\middle/ 4\right.}1/4时将底层列表长度减半。
为实现上述算法,我们只需要在dequeue()
的代码中加入下列两行代码即可:
if 0 < self._size < len(self._data) // 4:
self._resize(len(self._data) // 2)
即此时dequeue()的完整代码为:
def dequeue(self):
"""
按照FIFO(先进先出)的原则删除并返回队头元素,当队列为空时抛出Empty异常
:return: 队头元素
"""
if self.is_empty():
raise Empty('队列当前为空!')
ans = self._data[self._front]
self._data[self._front] = None # 协助解释器进行GC(Garbage Collection)
self._front = (self._front + 1) % len(self._data) # 将队头所对应列表索引值加1或归零
self._size -= 1
if 0 < self._size < len(self._data) // 4:
self._resize(len(self._data) // 2)
return ans