如何使用specfile将单个python文件filelock集成到pyinstaller?

问题描述

我有一个应用程序,我用 pyinstaller 打包到 windows 包。我想使用 filelock.py 来保护文件写入。该文件是作为单个 .py 文件而不是包提供的,这显然需要一种稍微不同的方法来集成到 pyinstaller 中。

我在规范文件的数据列表中有这个结构:

...
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 时仅安装文件

解决方法

如果您的脚本执行“import filelock”,那么 pyinstaller 将查找该文件并将其包含在包中,就像它查找“import sys”和“import os”一样。您不必告诉它在哪里可以找到它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...