Задача установки EDx всегда терпит неудачу с тайм-аутом

Я пытаюсь установить EdX по https://github.com/edx/configuration/wiki/edX-Ubuntu-12.04-64-bit-Installation.

Даже мне просто нужно запустить sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost" и подождать.

Это всегда терпело неудачу при выполнении следующей задачи:

# Install the python modules into {{ edxapp_venv_dir }}
- name : install python base-requirements
  # Need to use shell rather than pip so that we can maintain the context of our current working directory; some
  # requirements are pathed relative to the edx-platform repo. Using the pip from inside the virtual environment implicitly
  # installs everything into that virtual environment.
  shell: >
    {{ edxapp_venv_dir }}/bin/pip install -i {{ COMMON_PYPI_MIRROR_URL }} --exists-action w --use-mirrors -r {{ base_requirements_file }}
    chdir={{ edxapp_code_dir }}
  environment: "{{ edxapp_environment }}"
  sudo_user: "{{ edxapp_user }}"
  notify:
    - "restart edxapp"
    - "restart edxapp_workers"
  when: not inst.stat.exists or new.stat.md5 != inst.stat.md5

Итак, почему происходит сбой, а другие установки pip работают нормально, могу ли я получить ту же цель, используя модификацию задачи?

Это ошибка, показывающая:

***Traceback (most recent call last):
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/basecommand.py", line 122, in main status = self.run(options, args)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/commands/install.py", line 278, in run requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/req.py", line 1197, in prepare_files do_download,
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/req.py", line 1375, in unpack_url self.session,
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/download.py", line 546, in unpack_http_url resp = session.get(target_url, stream=True)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 395, in get return self.request('GET', url, **kwargs)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/download.py", line 237, in request     return super(PipSession, self).request(method, url, *args, **kwargs)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 383, in request resp = self.send(prep, **send_kwargs)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/_vendor/requests/sessions.py", line 486, in send r = adapter.send(request, **kwargs)
File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/pip/_vendor/requests/adapters.py", line 387, in send raise Timeout(e)
Timeout: (<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x295a6d0>, 'Connection to pypi.python.org timed out. (connect timeout=15)')***

person Pablo Arias Mora    schedule 16.04.2014    source источник


Ответы (1)


Проблема здесь в ценности зеркала и в том, что оно не может его найти:

{{ COMMON_PYPI_MIRROR_URL }}

Это значение установлено здесь, в файле edx-west/roles/common/defaults/main.yml:

COMMON_PYPI_MIRROR_URL: 'https://pypi.python.org/simple'

Я бы попробовал изменить его на какое-то другое зеркало специально и сначала использовать http (так как может быть проблема с https из логов):

http://b.pypi.python.org/simple or
http://c.pypi.python.org/simple or
http://d.pypi.python.org/simple

Также вы можете попробовать исключить эту опцию в своей книге:

-i {{ COMMON_PYPI_MIRROR_URL }}

согласно документации, где упоминается, что --use-mirrors или настройка export PIP_USE_MIRRORS=true на оболочки должно хватить.

person Rico    schedule 28.04.2014