当前位置: 首页 > 知识库问答 >
问题:

PyInster添加数据文件

漆雕亮
2023-03-14

我正在和pyinstaller做斗争。每当我使用kivy GUI和。kv文件,并运行。生成后,我收到一个致命错误:

IOError: [Errno 2] No such file or directory: 'main.kv'

我已经尝试添加了。kv文件,以及使用--add-data的mdb和dsn文件(对于PyODBC),但我得到一个错误:无法识别的参数:--add-data'main。kv'。(还有更多内容——为提到的其他文件添加数据参数。)

有没有解决这个问题的方法,或者其他的方法?

共有3个答案

诸葛煜
2023-03-14

解决方案是运行:pyi makespec yourscript。py然后编辑脚本。在a=Analysis中指定脚本并添加datas下的文件。

datas=[ ( '/pathToYourFile/main.kv', '.' )]

然后运行pyinstaller脚本。规格之后应该很好。

姚阳德
2023-03-14
匿名用户

如果您检查pyInster-h以获得帮助,您可以发现--add-data选项的工作原理如下[--add-data

pyinstaller -F --add-data "main.kv;main.kv" yourtarget.py

姚兴安
2023-03-14

正如其他人(@Anson Chan,@schlimmchen)所说:

如果要添加一些额外的文件,应使用“添加数据文件”。

  • 命令行:将参数添加到——添加数据
  • 规范文件:将参数添加到datas=
    • 第一次运行pyinstaller时生成。
      • 然后,您可以编辑您的*。规范文件
      • 然后运行pyinstaller将直接使用您的*。规范文件

      中的参数—添加数据数据=

      • --添加数据
      • 逻辑:
        • source:单个或多个文件的路径,支持glob语法。告诉PyInstaller在何处查找文件
        • destination文件:运行时包含源文件的目标文件夹。*注意:不是目标文件名。
          • 文件夹:目标文件夹路径,相对于目标根目录,而不是绝对路径
          • 单个文件:'src/README. txt:.'
          • 多个文件:'/myplay/sfx/*. mp3: sfx'
          • 文件夹:/myplay/data: data'
          • 格式:列表或元组
          added_files = [
              ( 'src/README.txt', '.' ),
              ( '/mygame/data', 'data' ),
              ( '/mygame/sfx/*.mp3', 'sfx' )
          ]
          
          a = Analysis(...
              datas = added_files,
              ...
          )
          

          对于您的(Windows操作系统),以下是:

            在命令行中添加数据
            • pyInster-F--add-data"main.kv;yourtarget.py

            或:

            • datas=yourtarget.spec文件中,请参阅以下内容:
            a = Analysis(...
                datas = ["main.kv", "."],
                ...
            )
            

 类似资料:
  • 我有一个应用程序,我想打包成一个文件,但遇到了选项的问题,包括html、js和css文件。运行(当然,在将各个数据文件的路径和所需路径添加到.spec文件的中的后,该过程工作正常。 我尝试了这个问题中提出的解决方案,但打包后返回了一个错误。此外,如果不包含这个答案所建议的代码,那么打包到一个文件就可以很好地工作,再次丢失了我需要的html、js和css。 有人在pyinstaller 3.1中遇到

  • 我正在Windows上使用Pyinstaller制作一个。我的项目的exe文件。 我想使用选项来获得一个干净的结果和一个易于分发的文件/程序。 我的程序使用用于存储配置选项的文件。此文件可由用户自定义。 使用选项Pyinstaller将所有声明的“数据文件”放入单个文件。 我见过这个请求,但它给出了在同一级别的并位于同一个目录中。 在某个时候,我想过在. spec文件中使用shutil.copy命

  • 添加一条数据 第一种是实例化模型对象后赋值并保存: $user = new UserModel; $user->user_nickname = '老猫'; $user->user_email = 'genmaowan@163.com'; $user->save(); 也可以使用data方法批量赋值: $user = new UserModel; $user->

  • 添加一条数据 使用 Db 类的 insert 方法向数据库提交数据 $user = ['user_nickname'=>'老猫']; Db::name('user')->insert($user); insert 方法添加数据成功返回添加成功的条数,insert 正常情况返回 1 添加数据后如果需要返回新增数据的自增主键,可以使用getLastInsID方法: Db::name('user')-

  • 添加一条数据 第一种是实例化模型对象后赋值并保存: $user = new UserModel; $user->user_nickname = '老猫'; $user->user_email = 'genmaowan@163.com'; $user->save(); 也可以使用data方法批量赋值: $user = new UserModel; $user->

  • 添加一条数据 数据库操作使用 Db类封装方法,请事先在引入 Db类 use think\facade\Db; [danger] 不推荐使用Db类操作数据库,请使用model 使用 Db 类的 insert 方法向数据库提交数据 $user = ['user_nickname'=>'老猫']; Db::name('user')->insert($user); insert 方法添加数据成功返回添