老头子的博客  2018年08月16日 星期四

手机版

Python学习(三)

这里介绍自己在学历Python遇到的一个安装tesserocr的错误处理过程

1、环境:Python3.6,OS:win10 64操作系统

2、安装命令:pip3 install tesserocr pillow报错如下所示:

[python] view plain copy print?

  1. Exception:  

  2. Traceback (most recent call last):  

  3.   File "d:\python\python36\lib\site-packages\pip\compat\__init__.py", line 73in console_to_str  

  4.     return s.decode(sys.__stdout__.encoding)  

  5. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 70: invalid continuation byte  

  6.   

  7. During handling of the above exception, another exception occurred:  

  8.   

  9. Traceback (most recent call last):  

  10.   File "d:\python\python36\lib\site-packages\pip\commands\install.py", line 324in run  

  11.     requirement_set.prepare_files(finder)  

  12.   File "d:\python\python36\lib\site-packages\pip\req\req_set.py", line 380in prepare_files  

  13.     ignore_dependencies=self.ignore_dependencies))  

  14.   File "d:\python\python36\lib\site-packages\pip\req\req_set.py", line 634in _prepare_file  

  15.     abstract_dist.prep_for_dist()  

  16.   File "d:\python\python36\lib\site-packages\pip\req\req_set.py", line 129in prep_for_dist  

  17.     self.req_to_install.run_egg_info()  

  18.   File "d:\python\python36\lib\site-packages\pip\req\req_install.py", line 439in run_egg_info  

  19.     command_desc='python setup.py egg_info')  

  20.   File "d:\python\python36\lib\site-packages\pip\utils\__init__.py", line 676in call_subprocess  

  21.     line = console_to_str(proc.stdout.readline())  

  22.   File "d:\python\python36\lib\site-packages\pip\compat\__init__.py", line 75in console_to_str  

  23.     return s.decode('utf_8')  

  24. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 70: invalid continuation byte  

  25.   

  26. During handling of the above exception, another exception occurred:  

  27.   

  28. Traceback (most recent call last):  

  29.   File "d:\python\python36\lib\site-packages\pip\basecommand.py", line 215in main  

  30.     status = self.run(options, args)  

  31.   File "d:\python\python36\lib\site-packages\pip\commands\install.py", line 385in run  

  32.     requirement_set.cleanup_files()  

  33.   File "d:\python\python36\lib\site-packages\pip\utils\build.py", line 38in __exit__  

  34.     self.cleanup()  

  35.   File "d:\python\python36\lib\site-packages\pip\utils\build.py", line 42in cleanup  

  36.     rmtree(self.name)  

  37.   File "d:\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 49in wrapped_f  

  38.     return Retrying(*dargs, **dkw).call(f, *args, **kw)  

  39.   File "d:\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 212in call  

  40.     raise attempt.get()  

  41.   File "d:\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 247in get  

  42.     six.reraise(self.value[0], self.value[1], self.value[2])  

  43.   File "d:\python\python36\lib\site-packages\pip\_vendor\six.py", line 686in reraise  

  44.     raise value  

  45.   File "d:\python\python36\lib\site-packages\pip\_vendor\retrying.py", line 200in call  

  46.     attempt = Attempt(fn(*args, **kwargs), attempt_number, False)  

  47.   File "d:\python\python36\lib\site-packages\pip\utils\__init__.py", line 102in rmtree  

  48.     onerror=rmtree_errorhandler)  

  49.   File "d:\python\python36\lib\shutil.py", line 494in rmtree  

  50.     return _rmtree_unsafe(path, onerror)  

  51.   File "d:\python\python36\lib\shutil.py", line 384in _rmtree_unsafe  

  52.     _rmtree_unsafe(fullname, onerror)  

  53.   File "d:\python\python36\lib\shutil.py", line 393in _rmtree_unsafe  

  54.     onerror(os.rmdir, path, sys.exc_info())  

  55.   File "d:\python\python36\lib\site-packages\pip\utils\__init__.py", line 114in rmtree_errorhandler  

  56.     func(path)  

  57. PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\jair\\AppData\\Local\\Temp\\pip-build-q4ms44lu\\tesserocr'  

3、这里网上搜了一把参见:https://blog.csdn.net/qq_33530388/article/details/68933201。但是问题又来了。错误如下:

[python] view plain copy print?

  1. Collecting tesserocr  

  2.   Using cached https://files.pythonhosted.org/packages/cf/0d/9e554f041962b8dd7acd978330535fed879452bb0af257c287ca4ae9c525/tesserocr-2.2.2.tar.gz  

  3. Collecting pillow  

  4.   Downloading https://files.pythonhosted.org/packages/a4/86/283719dac6309cf483452abb09759be9b2c0974435ed608dc67949127e13/Pillow-5.1.0-cp36-cp36m-win_amd64.whl (1.6MB)  

  5.     100% |████████████████████████████████| 1.6MB 441kB/s  

  6. Installing collected packages: tesserocr, pillow  

  7.   Running setup.py install for tesserocr ... error  

  8.     Complete output from command d:\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\jair\\AppData\\Local\\Temp\\pip-build-bt09g9nm\\tesserocr\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\jair\AppData\Local\Temp\pip-ojqp2_rs-record\install-record.txt --single-version-externally-managed --compile:  

  9.     Failed to extract tesseract version from executable: [WinError 2] 系统找不到指定的文件。  

  10.     Supporting tesseract v3.04.00  

  11.     Building with configs: {'libraries': ['tesseract''lept'], 'cython_compile_time_env': {'TESSERACT_VERSION'197632}}  

  12.     running install  

  13.     running build  

  14.     running build_ext  

  15.     building 'tesserocr' extension  

  16.     error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools  

  17.   

  18.     ----------------------------------------  

  19. Command "d:\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\jair\\AppData\\Local\\Temp\\pip-build-bt09g9nm\\tesserocr\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n''\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\jair\AppData\Local\Temp\pip-ojqp2_rs-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\jair\AppData\Local\Temp\pip-build-bt09g9nm\tesserocr\  

4、我们看错误提示需要安装 Microsoft Visual C++ 14.0。那就来安装这个吧,软件下载路径:https://download.csdn.net/download/amoscn/10399046

5、解压安装重启系统

6、做完上面的步骤恭喜你能看到下面的错误了

[python] view plain copy print?

  1. Collecting tesserocr  

  2.   Using cached https://files.pythonhosted.org/packages/cf/0d/9e554f041962b8dd7acd978330535fed879452bb0af257c287ca4ae9c525/tesserocr-2.2.2.tar.gz  

  3. Collecting pillow  

  4.   Using cached https://files.pythonhosted.org/packages/a4/86/283719dac6309cf483452abb09759be9b2c0974435ed608dc67949127e13/Pillow-5.1.0-cp36-cp36m-win_amd64.whl  

  5. Installing collected packages: tesserocr, pillow  

  6.   Running setup.py install for tesserocr ... error  

  7.     Complete output from command d:\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\jair\\AppData\\Local\\Temp\\pip-build-hcaf24yd\\tesserocr\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\jair\AppData\Local\Temp\pip-it3yvefo-record\install-record.txt --single-version-externally-managed --compile:  

  8.     Failed to extract tesseract version from executable: [WinError 2] 系统找不到指定的文件。  

  9.     Supporting tesseract v3.04.00  

  10.     Building with configs: {'libraries': ['tesseract''lept'], 'cython_compile_time_env': {'TESSERACT_VERSION'197632}}  

  11.     running install  

  12.     running build  

  13.     running build_ext  

  14.     building 'tesserocr' extension  

  15.     creating build  

  16.     creating build\temp.win-amd64-3.6  

  17.     creating build\temp.win-amd64-3.6\Release  

  18.     C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Id:\python\python36\include -Id:\python\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\winrt" /EHsc /Tptesserocr.cpp /Fobuild\temp.win-amd64-3.6\Release\tesserocr.obj  

  19.     tesserocr.cpp  

  20.     tesserocr.cpp(596): fatal error C1083: Cannot open include file: 'leptonica/allheaders.h': No such file or directory  

  21.     error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2  

  22.   

  23.     ----------------------------------------  

  24. Command "d:\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\jair\\AppData\\Local\\Temp\\pip-build-hcaf24yd\\tesserocr\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n''\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\jair\AppData\Local\Temp\pip-it3yvefo-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\jair\AppData\Local\Temp\pip-build-hcaf24yd\tesserocr\  

7、网上又搜了一圈。解决方式参见:https://www.v2ex.com/t/438072

8、如果不按照第7步方式解决是否还有其他方式呢?自己记录一下,也希望大家讨论指正!

 


标签:
上一篇: Python学习(四)
下一篇: Python学习(二)

发表评论:

*