PHP Composer 下载依赖项时删除其它不相关文件 导致项目报错 依赖包vendor手动导入

news2024/12/23 14:05:31

场景

最近项目上需要开发图片文字识别功能,接入了开源的tesseract_ocr,根据官网介绍,使用composer require thiagoalessio/tesseract_ocr命令安装依赖,但是在执行之后,删除了一些文件,导致项目报错。
在这里插入图片描述

解决方案

手动调整自动加载配置。

实现步骤

  1. 在项目根目录composer.json文件中的require对象中添加
"thiagoalessio/tesseract_ocr": "^2.12"

在这里插入图片描述

  1. composer.lock文件中的packages对象中添加
{
    "name": "thiagoalessio/tesseract_ocr",
    "version": "2.12.0",
    "source": {
        "type": "git",
        "url": "https://github.com/thiagoalessio/tesseract-ocr-for-php.git",
        "reference": "0f10bd7b02bdcba59c4fbd98fbd93a56f93b09b7"
    },
    "dist": {
        "type": "zip",
        "url": "https://api.github.com/repos/thiagoalessio/tesseract-ocr-for-php/zipball/0f10bd7b02bdcba59c4fbd98fbd93a56f93b09b7",
        "reference": "0f10bd7b02bdcba59c4fbd98fbd93a56f93b09b7",
        "shasum": "",
        "mirrors": [
            {
                "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
                "preferred": true
            }
        ]
    },
    "require": {
        "php": "^5.3 || ^7.0 || ^8.0"
    },
    "require-dev": {
        "phpunit/php-code-coverage": "^2.2.4 || ^9.0.0"
    },
    "type": "library",
    "autoload": {
        "psr-4": {
            "thiagoalessio\\TesseractOCR\\": "src/"
        }
    },
    "notification-url": "https://packagist.org/downloads/",
    "license": [
        "MIT"
    ],
    "authors": [
        {
            "name": "thiagoalessio",
            "email": "thiagoalessio@me.com"
        }
    ],
    "description": "A wrapper to work with Tesseract OCR inside PHP.",
    "keywords": [
        "OCR",
        "Tesseract",
        "text recognition"
    ],
    "support": {
        "irc": "irc://irc.freenode.net/tesseract-ocr-for-php",
        "issues": "https://github.com/thiagoalessio/tesseract-ocr-for-php/issues",
        "source": "https://github.com/thiagoalessio/tesseract-ocr-for-php"
    },
    "time": "2021-06-04T21:21:33+00:00"
}
  1. 将下载的依赖包放到vendor目录下,我这边的路径是vendor\thiagoalessio\tesseract_ocr
  2. vendor\composer\autoload_classmap.php中添加
'thiagoalessio\\TesseractOCR\\Command' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/Command.php',
'thiagoalessio\\TesseractOCR\\FeatureNotAvailableException' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/FeatureNotAvailableException.php',
'thiagoalessio\\TesseractOCR\\FriendlyErrors' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/FriendlyErrors.php',
'thiagoalessio\\TesseractOCR\\ImageNotFoundException' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/ImageNotFoundException.php',
'thiagoalessio\\TesseractOCR\\NoWritePermissionsForOutputFile' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/NoWritePermissionsForOutputFile.php',
'thiagoalessio\\TesseractOCR\\Option' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/Option.php',
'thiagoalessio\\TesseractOCR\\Process' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/Process.php',
'thiagoalessio\\TesseractOCR\\TesseractNotFoundException' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/TesseractNotFoundException.php',
'thiagoalessio\\TesseractOCR\\TesseractOCR' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/TesseractOCR.php',
'thiagoalessio\\TesseractOCR\\TesseractOcrException' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/TesseractOcrException.php',
'thiagoalessio\\TesseractOCR\\UnsuccessfulCommandException' => $vendorDir . '/thiagoalessio/tesseract_ocr/src/UnsuccessfulCommandException.php',

在这里插入图片描述

  1. vendor\composer\autoload_psr4.php中添加
'thiagoalessio\\TesseractOCR\\' => array($vendorDir . '/thiagoalessio/tesseract_ocr/src'),

加载的命名空间为:thiagoalessio\\TesseractOCR\\ ,那么将其配置指向的目录文件,$vendorDir 是vendor 目录地址。
在这里插入图片描述

  1. vendor\composer\autoload_static.php中的$prefixLengthsPsr4数组中添加
't' => 
array (
    'thiagoalessio\\TesseractOCR\\' => 27,
),

将上一步手动添加的依赖包命名空间首字母,如thiagoalessio\\TesseractOCR\\首字母为t,放到 t 数组内如果没有,就造出来一个字母变量,包含在里面即可,命名空间尾部为:”// “结尾,写法:命名空间 => 权重整型,权重不能重复
在这里插入图片描述

  1. vendor\composer\autoload_static.php中的文件映射目录数组变量$prefixLengthsPsr4数组中配置映射目录,添加
'thiagoalessio\\TesseractOCR\\' => 
array (
    0 => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src',
),

写法:命名空间 => 映射目录数组。
在这里插入图片描述

  1. vendor\composer\autoload_static.php中的$classMap数组中添加
'thiagoalessio\\TesseractOCR\\Command' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/Command.php',
'thiagoalessio\\TesseractOCR\\FeatureNotAvailableException' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/FeatureNotAvailableException.php',
'thiagoalessio\\TesseractOCR\\FriendlyErrors' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/FriendlyErrors.php',
'thiagoalessio\\TesseractOCR\\ImageNotFoundException' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/ImageNotFoundException.php',
'thiagoalessio\\TesseractOCR\\NoWritePermissionsForOutputFile' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/NoWritePermissionsForOutputFile.php',
'thiagoalessio\\TesseractOCR\\Option' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/Option.php',
'thiagoalessio\\TesseractOCR\\Process' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/Process.php',
'thiagoalessio\\TesseractOCR\\TesseractNotFoundException' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/TesseractNotFoundException.php',
'thiagoalessio\\TesseractOCR\\TesseractOCR' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/TesseractOCR.php',
'thiagoalessio\\TesseractOCR\\TesseractOcrException' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/TesseractOcrException.php',
'thiagoalessio\\TesseractOCR\\UnsuccessfulCommandException' => __DIR__ . '/..' . '/thiagoalessio/tesseract_ocr/src/UnsuccessfulCommandException.php',

在这里插入图片描述

  1. vendor\composer\installed.json中添加
{
    "name": "thiagoalessio/tesseract_ocr",
    "version": "2.12.0",
    "version_normalized": "2.12.0.0",
    "source": {
        "type": "git",
        "url": "https://github.com/thiagoalessio/tesseract-ocr-for-php.git",
        "reference": "0f10bd7b02bdcba59c4fbd98fbd93a56f93b09b7"
    },
    "dist": {
        "type": "zip",
        "url": "https://api.github.com/repos/thiagoalessio/tesseract-ocr-for-php/zipball/0f10bd7b02bdcba59c4fbd98fbd93a56f93b09b7",
        "reference": "0f10bd7b02bdcba59c4fbd98fbd93a56f93b09b7",
        "shasum": "",
        "mirrors": [
            {
                "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
                "preferred": true
            }
        ]
    },
    "require": {
        "php": "^5.3 || ^7.0 || ^8.0"
    },
    "require-dev": {
        "phpunit/php-code-coverage": "^2.2.4 || ^9.0.0"
    },
    "time": "2021-06-04T21:21:33+00:00",
    "type": "library",
    "installation-source": "dist",
    "autoload": {
        "psr-4": {
            "thiagoalessio\\TesseractOCR\\": "src/"
        }
    },
    "notification-url": "https://packagist.org/downloads/",
    "license": [
        "MIT"
    ],
    "authors": [
        {
            "name": "thiagoalessio",
            "email": "thiagoalessio@me.com"
        }
    ],
    "description": "A wrapper to work with Tesseract OCR inside PHP.",
    "keywords": [
        "OCR",
        "Tesseract",
        "text recognition"
    ],
    "support": {
        "irc": "irc://irc.freenode.net/tesseract-ocr-for-php",
        "issues": "https://github.com/thiagoalessio/tesseract-ocr-for-php/issues",
        "source": "https://github.com/thiagoalessio/tesseract-ocr-for-php"
    },
    "install-path": "../thiagoalessio/tesseract_ocr"
},

修改完以上就可以加载了,在项目中使用 use thiagoalessio\TesseractOCR\TesseractOCR; 即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/359057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据管理之特征仓库

鉴于特征仓库热度下降,特将历史库存放出😄 背景 数据工程师与算法工程师在数据存取上存在沟通成本,基于现状存在以下问题: 提供训练使用的离线特征与在线服务使用的在线特征,构造方式存在差异,离线、在线…

P18 PyTorch 感知机的梯度推导

前言这里面简单介绍一下单层感知机和多层感知机的模型参考:https://www.bilibili.com/video/BV17e4y1q7NG?p41一 单层感知机模型输入: k 代表网络层数,i 代表输入节点的编号前向传播: 权重系数k: 层数i: 前一层输入节点编号j: 当前层输出节点编号这里&a…

Python opencv进行圆形识别(圆检测)

圆形识别(圆检测)是图像识别中很常见的一种处理方式,最核心的是cv2.HoughCircles这个函数实现的圆形检测。当然还有一些其他的处理过程,以下详述: 1 读入图像 首先需要读取一个图像文件,将其作为一个变量…

Java 字符串

文章目录一、API二、String1. String 构造方法2. String 对象的特点3. 字符串的比较4. 用户登录案例5. 遍历字符串6. 统计字符次数7. 拼接字符串8. 字符串反转三、StringBuilder1. 构造方法2. 添加及反转方法3. 与 String 相互转换4. 拼接字符串升级版5. 字符串反转升级版一、A…

【Java】Spring核心与设计思想

文章目录Spring核心与设计思想1. Spring是什么1.1 什么是容器1.2 什么是IOC1.2.1 传统程序开发1.2.2 控制反转式程序开发1.2.3 对比总结规律1.3 理解Spring IOC1.4 DI概念说明Spring核心与设计思想 1. Spring是什么 我们通常所说的Spring指的是Spring Framework(S…

工业4.0和工业物联网如何协同工作

虽然许多公司已经接受了工业物联网,但他们现在必须接受工业4.0对数据驱动的数字化转型的承诺。随着制造业、能源、公用事业和供应链应用迅速采用工业物联网(IIoT),这些行业的新现实正在形成。工业物联网提供了企业管理数千个活动部件所需的数据类型&…

二、最基本的vuex的使用

二、最基本的vuex的使用: 学习任何技术,先找到没有用这个技术时,给我们带来了什么麻烦 而这个新技术是怎么帮我们解决这些问题的。 理解方式: state:装数据的一个对象 mutations:装方法的一个对象&#…

FPGA纯Verilog实现任意尺寸图像缩放,串口指令控制切换,贴近真实项目,提供工程源码和技术支持

目录1、前言2、目前主流的FPGA图像缩放方案3、本方案的优越性4、详细设计方案5、vivado工程详解6、上板调试验证并演示7、福利:工程源码获取1、前言 代码使用纯verilog实现,没有任何ip,可在Xilinx、Intel、国产FPGA间任意移植; 图…

steam搬砖信息差项目,新手1周拿到结果!

项目具体是什么呢? 项目简单概括通过选品软件自动分析出此商品国内外商品价格,计算出利润率,选择出有利润销量好的商品,在以最低价格上架到国内buff的平台里,既能快速的卖出,还能获利。 主要利润在于商品…

力扣刷题|216.组合总和 III、17.电话号码的字母组合

文章目录LeetCode 216.组合总和题目链接🔗思路LeetCode 17.电话号码的字母组合题目链接🔗思路LeetCode 216.组合总和 题目链接🔗 LeetCode 216.组合总和 思路 本题就是在[1,2,3,4,5,6,7,8,9]这个集合中找到和为n的k个数的组合。 相对于7…

2 月 25 日,论道京城 | 云原生开源项目应用实践报名开启

在数字化转型的浪潮中,云原生已经逐渐成为人们关注的焦点。开源社区作为云原生技术创新的根据地,为云原生的产业发展打造了丰富的技术生态圈,也在广泛的实践中源源不断地创造着新的机遇。想知道云原生存储技术实现了怎样的突破吗?…

51单片机开发环境搭建 - VS Code 从编写到烧录

我安装并测试成功的环境: 操作系统:Windows 10 (22H2)单片机:STC89C52RCPython version: 3.7.6 在这之前,给51单片机写程序是用 Keil 5(编写编译)、STC-ISP(烧录),由于…

第六章.卷积神经网络(CNN)—卷积层(Convolution)池化层(Pooling)

第六章.卷积神经网络(CNN) 6.1 卷积层(Convolution)&池化层(Pooling) 1.整体结构 以5层神经网络的实现为例: 1).基于全连接层(Affine)的网络 全连接层:相邻层的所有神经元之间都有连接 2).常见的CNN的网络 3).全连接层存在的问题 数据的形状容易被…

VSCode Remote-SSH配置免密登录踩坑

VSCode Remote-SSH配置免密登录踩坑1. 参考2. 基本流程2.1 机器A(Windows客户端)2.2 机器B(Linux服务器)2.3 机器A(Windows客户端)的VSCode设置3. 踩坑总结相关教程很多,但要么冗余,…

Teradata退出中国,您可以相信中国数据库!

继Adobe、Tableau、Salesforce之后,2023年2月15日,数仓软件巨头Teradata宣布将逐步结束在中国的直接运营。数仓界的“黄埔军校”仓皇撤出中国市场给出的理由非常含蓄:Teradata对中国当前和未来商业环境的慎重评估,我们做了一个艰难…

阅读笔记5——深度可分离卷积

一、标准卷积 标准卷积在卷积时,同时考虑了特征图的区域和通道信息。 标准卷积的过程如图1-1所示,假设输入特征图的channel3,则每个卷积核的channel都为3,每个卷积核的3个channel对应提取输入特征图的3个channel的特征&#xff08…

抖音怎样报白?报白需要审核哪些资料呢

抖音怎样报白?报白需要审核哪些资料呢 抖音报白需要什么资料,翡翠原石产品如何开通报白#报白#小店报白#小店运营#抖音#抖音小店运营 文/专栏作家百收 随着抖音在国内流行起来,抖音上每天会有大量的视频更新,越来越多的年轻人也加…

Java数据结构中链表分割及链表排序使用快速排序、归并排序、集合排序、迭代、递归,刷题的重点总结

本篇主要介绍在单链表进行分割,单链表进行分隔并使用快速排序、归并排序、集合排序、迭代、递归等方法的总结,愿各位大佬喜欢~~ 86. 分隔链表 - 力扣(LeetCode) 148. 排序链表 - 力扣(LeetCode) 目录 一…

CAS概述

目录一、CAS与原子类1.1 CAS1.2 乐观锁与悲观锁1.3 原子操作类二、 synchronized优化2.1 轻量级锁2.2 轻量级锁-无竞争2.3 轻量级锁-锁膨胀2.4 重量级锁-自旋2.5 偏向锁2.6 synchronized-其他优化一、CAS与原子类 1.1 CAS CAS(一种不断尝试)即Compare …

2023年正在使用的设计资源网站分享

这篇文章,也将整理出我今年一直都在使用的设计资源网站!作为设计师一定是离不开优质的资源网站的,我自己的话会每天都花一两个小时的时间去浏览自己的收藏的这些资源网站。哪怕只是简单的浏览,也可以在无形中增加自己对设计的“设…