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