因為最近打算來學習一下OCR,在github上發現了一個很不錯的開源項目(https://github.com/chineseocr/chinese-ocr),就在虛擬機安裝了Ubuntu16.04。Ubuntu16.04自帶了python2.7和python3.5。
由于chinese-ocr這個項目是基于python2.7環境,就打算在2.7里面創建個虛擬環境,結果失敗了,具體報錯如下:
New python executable in /home/yumi/venvs/project-chinese-ocr/venv/bin/pythonInstalling setuptools, pip, wheel... Complete output from command /home/yumi/venvs/pro...-ocr/venv/bin/python - setuptools pip wheel: Collecting setuptoolsException:Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/commands/install.py", line 324, in run requirement_set.prepare_files(finder) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/req/req_set.py", line 380, in prepare_files ignore_dependencies=self.ignore_dependencies)) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/req/req_set.py", line 554, in _prepare_file require_hashes File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/req/req_install.py", line 278, in populate_link self.link = finder.find_requirement(self, upgrade) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 465, in find_requirement all_candidates = self.find_all_candidates(req.name) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 423, in find_all_candidates for page in self._get_pages(url_locations, project_name): File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 568, in _get_pages page = self._get_page(location) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 683, in _get_page return HTMLPage.get_page(link, session=self.session) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 792, in get_page "Cache-Control": "max-age=600", File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/sessions.py", line 488, in get return self.request('GET', url, **kwargs) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/download.py", line 386, in request return super(PipSession, self).request(method, url, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/sessions.py", line 475, in request resp = self.send(prep, **send_kwargs) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/sessions.py", line 596, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/cachecontrol/adapter.py", line 47, in send resp = super(CacheControlAdapter, self).send(request, **kw) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/adapters.py", line 390, in send conn = self.get_connection(request.url, proxies) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/adapters.py", line 290, in get_connection proxy_manager = self.proxy_manager_for(proxy) File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/adapters.py", line 184, in proxy_manager_for **proxy_kwargs File "/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/adapters.py", line 43, in SOCKSProxyManager raise InvalidSchema("Missing dependencies for SOCKS support.")InvalidSchema: Missing dependencies for SOCKS support.----------------------------------------...Installing setuptools, pip, wheel...done.Traceback (most recent call last): File "/usr/local/bin/virtualenv", line 11, in sys.exit(main())
? File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 713, in main
? ? symlink=options.symlink)
? File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 945, in create_environment
? ? download=download,
? File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 901, in install_wheel
? ? call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
? File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 797, in call_subprocess
? ? % (cmd_desc, proc.returncode))
OSError: Command /home/yumi/venvs/pro...-ocr/venv/bin/python - setuptools pip wheel failed with error code 2
解決方法嘗試如下:
1、創建虛擬環境時指定python版本:virtualenv venv --python=python2.7,仍然失敗!
2、創建虛擬環境時不安裝pip、installer之類的:virtualenv myenv --no-setuptools --no-pip,仍然失敗!
3、可能是系統設置了socks代理,這里出現錯誤?Missing dependencies for SOCKS support。于是關閉系統設置面板里的代理,仍然失敗!
4、嘗試 pip install requests[socks] ,仍然失敗!
4、最后死馬當活馬醫,修改 ~/.bashrc 文件(gedit ~/.bashrc),最底下增加一行export all_proxy="https://:/",并使其生效(source ~/.bashrc),系統設置面板里的代理仍不變(因為本機是在公司內網,上網需要設置代理,因此虛擬機里面也需設置同樣的代理,再用NAT模式,虛擬機就可以上網了),再試一次居然成功了!感動中國!我局域網內的虛擬機仍可以上網。
可以繼續下一步學習了哈哈~~