Readthedocs.org: El intérprete de Python para la compilación de documentos está forzado a Python 3.7 a pesar de comenzar en virtualenv con python 3.6

Creado en 21 feb. 2019  ·  4Comentarios  ·  Fuente: readthedocs/readthedocs.org

Detalles

Esto sucede al intentar activar una compilación de documentos, incluso para el proyecto de demostración. Hice esto en una instalación nueva en Ubuntu 18.04 y Amazon Linux 2.

Mi script de Ubuntu:

apt update
apt upgrade -y
apt install -y latexmk texlive texlive-science texlive-formats-extra git redis python3-dev

git clone https://github.com/rtfd/readthedocs.org.git
cd readthedocs.org
echo "    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')" >> readthedocs/settings/base.py

python3 -m venv --without-pip venv
source venv/bin/activate
curl -s https://bootstrap.pypa.io/get-pip.py | python

pip install -r requirements.txt
pip install django-allauth

python manage.py migrate
echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin<strong i="8">@localhost</strong>', 'admin')" | python ./manage.py shell
python manage.py collectstatic
python manage.py loaddata test_data

python manage.py runserver 0.0.0.0:8000

Error:

[21/Feb/2019 19:22:26] readthedocs.doc_builder.environments:599[1832]: WARNING (Build) [admin-demo:latest] Command python3.7 -mvirtualenv --no-site-packages --no-download /home/ubuntu/readthedocs.org/user_builds/admin-demo/envs/latest failed:
Traceback (most recent call last):
  File "/home/ubuntu/readthedocs.org/readthedocs/doc_builder/environments.py", line 178, in run
    env=environment,
  File "/usr/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'python3.7': 'python3.7'
Traceback (most recent call last):
  File "/home/ubuntu/readthedocs.org/readthedocs/projects/tasks.py", line 558, in run_build
    self.setup_python_environment()
  File "/home/ubuntu/readthedocs.org/readthedocs/projects/tasks.py", line 784, in setup_python_environment
    self.python_env.setup_base()
  File "/home/ubuntu/readthedocs.org/readthedocs/doc_builder/python_environments.py", line 258, in setup_base
    cwd='$HOME',
  File "/home/ubuntu/readthedocs.org/readthedocs/doc_builder/environments.py", line 612, in run
    return super().run(*cmd, **kwargs)
  File "/home/ubuntu/readthedocs.org/readthedocs/doc_builder/environments.py", line 403, in run
    return self.run_command_class(cls=self.command_class, cmd=cmd, **kwargs)
  File "/home/ubuntu/readthedocs.org/readthedocs/doc_builder/environments.py", line 618, in run_command_class
    return super().run_command_class(*cmd, **kwargs)
  File "/home/ubuntu/readthedocs.org/readthedocs/doc_builder/environments.py", line 472, in run_command_class
    raise BuildEnvironmentWarning(msg)
readthedocs.doc_builder.exceptions.BuildEnvironmentWarning: Command python3.7 -mvirtualenv --no-site-packages --no-download /home/ubuntu/readthedocs.org/user_builds/admin-demo/envs/latest failed:
Traceback (most recent call last):
  File "/home/ubuntu/readthedocs.org/readthedocs/doc_builder/environments.py", line 178, in run
    env=environment,
  File "/usr/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'python3.7': 'python3.7'

Resultado Esperado

Compilación de documentos

Resultado actual

Error al faltar Python 3.7

Esto no estaba sucediendo hace unos días cuando probé esto, usando los mismos scripts de configuración.

Comentario más útil

Esto parece un estado extraño considerando que no es compatible con Python 3.7 para ejecutar la aplicación (# 4756).

¿Por qué necesitaría dos versiones de Python por defecto? Ese no es un buen estado para estar en un comportamiento predeterminado.

Todos 4 comentarios

El edificio de documentos está separado de la aplicación. Predeterminamos 3.7 en nuestras versiones más recientes. Puede usar un archivo de configuración para usar otra versión de Python o cambiar la configuración predeterminada desde readthedocs/settings

Explique cómo hacer esto. ¿Está esto documentado?

Usando un archivo de configuración https://docs.readthedocs.io/en/stable/config-file/v2.html

O puede eliminar 3.7 de la configuración https://github.com/rtfd/readthedocs.org/blob/ed8dd29a68d009fc08929fabf7155883482619c1/readthedocs/settings/base.py#L292 -L294 (porque tomamos la última versión de la última imagen)

Y usamos docker en producción.

Esto parece un estado extraño considerando que no es compatible con Python 3.7 para ejecutar la aplicación (# 4756).

¿Por qué necesitaría dos versiones de Python por defecto? Ese no es un buen estado para estar en un comportamiento predeterminado.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

humitos picture humitos  ·  4Comentarios

enielse picture enielse  ·  4Comentarios

davidfischer picture davidfischer  ·  4Comentarios

boscorelly picture boscorelly  ·  4Comentarios

gtalarico picture gtalarico  ·  4Comentarios