我有一个应用程序,我与pyinstaller打包到windows软件包。我想使用filelock.py来保护文件写入。该文件以单个.py文件的形式出现,而不是包,这显然需要一种略微不同的方法来集成到pyinstaller中。
我在specfile的datas列表中有这个结构:
...
datas=[...
('C:\\Users\\user\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\pymzml', '.\\pymzml'),
('C:\\Users\\user\\anaconda3\\envs\\ms-mint\\lib\\site-packages\\filelock.py', '.\\filelock'),
...]第一个是一个“普通”包的例子。第二个是filelock的不起作用的例子。
我认为问题在于文件锁并不遵循程序位于子文件夹/filelock/filelock.py中的标准结构,而是在使用pip pip install filelock时只安装文件。
发布于 2021-02-02 06:25:28
如果你的脚本确实是"import filelock",那么pyinstaller会找到这个文件并将其包含在包中,就像它找到"import sys“和"import os”一样。你不必告诉它在哪里可以找到它。
https://stackoverflow.com/questions/66000596
复制相似问题