paddleocr, windows pip instala la biblioteca gigante pit lanms

La mejor referencia para instalar lanms:  paddleocr, windows pip install giant pit lanms library

Anti-perdida, una copia de la copia directa


Las últimas bibliotecas de paddleocr son más difíciles de instalar que una, especialmente la biblioteca lanms, que es extremadamente difícil de instalar, rechaza cualquier campana y silbato y resuelve el problema en diez minutos y tres pasos.

error de descarga de pip

Keyring is skipped due to an exception: 'keyring.backends'
Collecting lanms
  Using cached lanms-1.0.2.tar.gz (973 kB)
    ERROR: Command errored out with exit status 1:
     command: 'C:\Users\TensorFlow\anaconda3\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\TENSOR~1\\AppData\\Local\\Temp\\pip-install-46p1kew5\\lanms\\setup.py'"'"'; __file__='"'"'C:\\Users\\TENSOR~1\\AppData\\Local\\Temp\\pip-install-46p1kew5\\lanms\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\TENSOR~1\AppData\Local\Temp\pip-install-46p1kew5\lanms\pip-egg-info'
         cwd: C:\Users\TENSOR~1\AppData\Local\Temp\pip-install-46p1kew5\lanms\
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\TENSOR~1\AppData\Local\Temp\pip-install-46p1kew5\lanms\setup.py", line 27, in <module>
        if subprocess.call(['make', '--always-make','-C', BASE_DIR]) != 0:
      File "C:\Users\TensorFlow\anaconda3\lib\subprocess.py", line 339, in call
        with Popen(*popenargs, **kwargs) as p:
      File "C:\Users\TensorFlow\anaconda3\lib\subprocess.py", line 800, in __init__
        restore_signals, start_new_session)
      File "C:\Users\TensorFlow\anaconda3\lib\subprocess.py", line 1207, in _execute_child
        startupinfo)
    FileNotFoundError: [WinError 2] 系统找不到指定的文件。
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Es lo anterior o lo es, después de descargar una parte, se informará directamente de un error (no se puede recuperar).

El primer paso es descargar la versión en lenguaje C en github y compilarla tú mismo.

https://github.com/SakuraRiven/LANMS

Arriba está la URL.

 El contenido es así, después de descargarlo e instalarlo, dijo que usara python setup.py bdist_wheel para compilar.

Nota: error

(venv3) D:\study\配料表分析\lanms-master>python setup.py bdist_wheel
Traceback (most recent call last):
  File "setup.py", line 27, in <module>
    if subprocess.call(['make', '--always-make','-C', BASE_DIR]) != 0:
  File "C:\Users\TensorFlow\anaconda3\lib\subprocess.py", line 339, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Users\TensorFlow\anaconda3\lib\subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "C:\Users\TensorFlow\anaconda3\lib\subprocess.py", line 1207, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
if subprocess.call(['make', '--always-make','-C', BASE_DIR]) != 0:
   raise RuntimeError('Cannot compile lanms in the directory: {}'.format(BASE_DIR))

No se que archivo falta, es solo un juicio, solo comentar estas dos lineas de codigo .

El segundo paso pip instala   el archivo whl

Después de ejecutarlo, puede encontrar el archivo de la biblioteca en formato whl en la carpeta dist e instalarlo en el entorno.

pip install lanms-1.0.2-cp37-cp37m-win_amd64.whl

Incluso si la instalación está completa aquí, si se informa un error, vea si se parece al tercer paso.

El tercer paso es modificar el código fuente de la biblioteca.

Todavía puede informar un error después de la instalación, pero no es lo mismo que antes, y se informa el error:

Traceback (most recent call last):
  File "D:/study/配料表分析/PaddleOCR-release-2.6/test.py", line 1, in <module>
    from paddleocr import PaddleOCR
  File "D:\study\配料表分析\PaddleOCR-release-2.6\paddleocr.py", line 34, in <module>
    from tools.infer import predict_system
  File "D:\study\配料表分析\PaddleOCR-release-2.6\tools\infer\predict_system.py", line 33, in <module>
    import tools.infer.predict_det as predict_det
  File "D:\study\配料表分析\PaddleOCR-release-2.6\tools\infer\predict_det.py", line 31, in <module>
    from ppocr.data import create_operators, transform
  File "D:\study\配料表分析\PaddleOCR-release-2.6\ppocr\data\__init__.py", line 35, in <module>
    from ppocr.data.imaug import transform, create_operators
  File "D:\study\配料表分析\PaddleOCR-release-2.6\ppocr\data\imaug\__init__.py", line 48, in <module>
    from .drrg_targets import DRRGTargets
  File "D:\study\配料表分析\PaddleOCR-release-2.6\ppocr\data\imaug\drrg_targets.py", line 21, in <module>
    from lanms import merge_quadrangle_n9 as la_nms
  File "C:\Users\TensorFlow\anaconda3\envs\AI\lib\site-packages\lanms\__init__.py", line 2, in <module>
    from .adaptor import merge_quadrangle_n9 as nms_impl
ModuleNotFoundError: No module named 'lanms.adaptor'

Ubique el código fuente del error y lea el código fuente para ver que en realidad es una recursión. No sé por qué hay algún problema con la llamada a la función.
Si cambia el código fuente aquí, guarde el código fuente original
y reemplace directamente el código en el archivo __init__.py.

import numpy as np


def merge_quadrangle_n9(polys, thres=0.3, precision=10000):
    if len(polys) == 0:
        return np.array([], dtype='float32')
    p = polys.copy()
    p[:, :8] *= precision
    ret = np.array(merge_quadrangle_n9(p, thres), dtype='float32')
    ret[:, :8] /= precision
    return ret


Los dos últimos se instalan directamente: 

# 安装时注意关闭魔法
pip install lmdb
pip install tqdm

Supongo que te gusta

Origin blog.csdn.net/March_A/article/details/130173763
Recomendado
Clasificación