Generalidades
Se recomienda usar virtualenv para instalar Django en los Servidores Compartidos y Privados de DreamHost ya que tu usuario no tiene acceso para hacer instalaciones en directorios compartidos. Al usar virtualenv, creas un entorno aislado con tu propia instalación de directorios al cual tu usuario tiene aceso total. Esto te permite instalar una versión personalizada de Python y sus diferentes paquetes, los cuales no están conectados a la instalación global del servidor. Esto sirve para evitar cualquier incoveniente con respecto a los permisos al instalar el software.
pip y virtualenv
Revisa los enlaces a continuación para más detalles sobre la instalación usando pip y virtualenv dependiendo de la versión de Python que estés usando:
Python 2
Python 3
Paso 1 — Instalar una versión personalizada de Python para tu virtualenv
Si planeas usar Django con un nuevo entorno virtual, lo más probable es que quieras usar una versión específica de Python. Revisa el enlace a continuación (dependiendo de tu versión de Python) para encontrar la información sobre cómo instalar una versión personalizada de Python y crear un entorno virtual, usando dicha versión personalizada:
Paso 2 — Crear y activar tu entorno virtual
Revisa el siguiente artículo (dependiendo de tu versión de Python) para crear un entorno virtual:
- Instalar y usar virtualenv de Python con la versión de Python 2
- Instalar y usar virtualenv de Python con la versión de Python 3
Después de haber creado y activado el proyecto en el entorno virtual, puedes proceder a instalar Django dentro del mismo entorno aislado.
Estas instrucciones asumen que el nombre del entorno virtual que creaste es 'venv'.
Paso 3 — Configurar tu sitio Django en tu entorno virtual (virtualenv)
Para ejecutar los comandos que te damos en este artículo, debes acceder a tu servidor via SSH con tu usuario Shell. Revisa los siguentes artículos para mas información:
Instala una versión personalizada de Django y cualquier otro paquete requirido por tu sitio web usando pip (por ejemplo, mysqlclient si vas a usar una base de datos con MySQL):
Los comandos a continuación instalan la última versión de Django (v3). Si quieres instalar la versión 2 en su lugar, corre el siguiente comando.
(venv) [server]$ pip3 install Django==2.2.15
Python 2
(venv) [server]$ pip install Django (venv) [server]$ pip install mysqlclient
Python 3
Si lo estás instalando en un entorno Python3, usa este comando:
(venv) [server]$ pip3 install Django (venv) [server]$ pip3 install mysqlclient
Instalar versión 2+ de Django
Si quieres instalar Django version 2.0.3, debes usar Python 3. Si intentas instalarlo en un entorno de Python 2, verás los siguientes errores:
Could not find a version that satisfies the requirement Django==2.0.3 (from versions: 1.1.3, 1.1.4, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.3, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.4.11, 1.4.12, 1.4.13, 1.4.14, 1.4.15, 1.4.16, 1.4.17, 1.4.18, 1.4.19, 1.4.20, 1.4.21, 1.4.22, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.5.6, 1.5.7, 1.5.8, 1.5.9, 1.5.10, 1.5.11, 1.5.12, 1.6, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8, 1.6.9, 1.6.10, 1.6.11, 1.7, 1.7.1, 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7.9, 1.7.10, 1.7.11, 1.8a1, 1.8b1, 1.8b2, 1.8rc1, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.8.10, 1.8.11, 1.8.12, 1.8.13, 1.8.14, 1.8.15, 1.8.16, 1.8.17, 1.8.18, 1.8.19, 1.9a1, 1.9b1, 1.9rc1, 1.9rc2, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.9.5, 1.9.6, 1.9.7, 1.9.8, 1.9.9, 1.9.10, 1.9.11, 1.9.12, 1.9.13, 1.10a1, 1.10b1, 1.10rc1, 1.10, 1.10.1, 1.10.2, 1.10.3, 1.10.4, 1.10.5, 1.10.6, 1.10.7, 1.10.8, 1.11a1, 1.11b1, 1.11rc1, 1.11, 1.11.1, 1.11.2, 1.11.3, 1.11.4, 1.11.5, 1.11.6, 1.11.7, 1.11.8, 1.11.9, 1.11.10, 1.11.11) No matching distribution found for Django==2.0.3 /home/username/projectname/lib/python2.7/site-packages/pip/_vendor/urllib3/util/ssl_.py:339: SNIMissingWarning:
An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform.
This may cause the server to present an incorrect TLS certificate, which can cause validation failures.
You can upgrade to a newer version of Python to solve this. For more information,
see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings SNIMissingWarning /home/username/projectname/lib/python2.7/site-packages/pip/_vendor/urllib3/util/ssl_.py:137:
InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately
and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this.
For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecurePlatformWarning
Revisa los siguientes artículos para verificar la compatibiliad entre Python y Django:
En el siquiente artículo puedes encontrar las instrucciones para crear un proyecto de Django usando Python3:
Ver la versión de Django
Corre este comando para ver la versión de Django que instalaste:
(venv) [server]$ python -c "import django; print(django.get_version())"
Solución de problemas
Durante la instalación de Django o mysqlclient, es posible que veas el siguiente error:
Command "python setup.py egg_info" failed with error code 1
Si ves ese error, intenta actualizar la versión de pip en tu entorno virutal. Ejemplo:
(venv) [server]$ python -m pip install --upgrade pip
O para Python 3
(venv) [server]$ python3 -m pip install --upgrade pip
Esto debería corregir el error en la instalación.