Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Quijost.com - Hosting Gratis al alcance de tus manos

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Temas - slothy

Páginas: [1]
1
Asistencia al cliente / Permisos de escritura del proceso python
« en: Julio 26, 2011, 20:10:17 pm »
Hola,

Estoy tratando de poner en marcha un django-cms, de momento todo es correcto, salvo la escritura de ficheros. Por lo que he estado investigando, el subinterprete que lanza mod_wsgi, corre con los permisos del usuario apache, nobody, al tratar de realizar cualquier tipo de escritura, obtengo un error, salvo, si doy permisos de escritura a+x, si es un directorio fuera del DOCUMENT_ROOT, no puedo accederlo como URL ..., si está dentro de DROOT, es "escribible" públicamente...por otro lado veo que una posible solución puede ser la escritura en /tmp, pero no se que política hay al respecto, no de escritura, ni de borrado de mantenimiento, y quedan expuestos los ficheros al acceso por parte de los procesos "nobody" del resto de users de la máquina.  La mayor parte de la problemática/solución viene de la configuración de apache de mod_wsgi,http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6 ¿es posible algo en el sentido de modificar la configuración del mod_wsgi? ¿Se me está escapando alguna otra opción?

Como añadido, en el foro se apunta a un howto sobre capturar las excepciones con middleware, en concreto con Paste, pero no está instalado en el sistema, ¿se podría instalar?

Gracias

2
Python / Problema con los "staticfiles" en django
« en: Julio 24, 2011, 12:03:12 pm »
Hola,

Estoy tratando de poner en marcha un django-cms, hasta ahora todo está correcto, salvo por los ficheros "static", utilizo "django-staticfiles" y en principio, lo relativo a la configuración del módulo es correcto, lanzas el comando:
Código: [Seleccionar]
python manage.py collectstatic Este te recoge los archivos de las rutas configuradas y los pone en el path correspondiente, en mi caso:
Código: [Seleccionar]
/home/slothy/public_html/diezmiluji/static/mediaQue es donde en teoría buscará los archivos, ahora bien estoy recibiendo, un "301 MOVED PERMANENTLY"...
Sospecho que el problema está en mi configuración de .htaccess:
Código: [Seleccionar]
SetHandler wsgi-script

RewriteEngine On

# RewriteLog "/home/slothy/logs/rewrite.log"
# RewriteLogLevel 4

# RewriteBase /static
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(admin/.*)$ - [L]
RewriteRule ^(static/.*)$ - [L]
# RewriteRule ^(static/.*)$ static/$1 [L]
RewriteCond %{REQUEST_URI} !(diezmiluji.wsgi)
RewriteRule ^(.*)$ diezmiluji.wsgi/$1 [L]

En la documentación de Django y mod_wsgi recomiendan crear un Alias a los archivos ej:
Código: [Seleccionar]
Alias /static/ /usr/local/wsgi/static/

<Directory /usr/local/wsgi/static>
Order deny,allow
Allow from all
</Directory>

Pero teóricamente el acceso a esos directorios lo permite las "Rules" de mi .htacces, aunque el problema podría estar tambien en la configuracióin de mi urls.py...

¿Alguien me puede arrojar un poco luz?

Gracias.

3
Python / virtualenv & virtualenvwrapper
« en: Julio 23, 2011, 13:01:10 pm »
Hola,

En respuesta y agradecimiento a los usuarios que han publicado guías anteriormente y a los administradores del sistema por su ayuda, voy  a publicar un mini how-to sobre como poner en marcha en una de las cuentas virtual host un sistema de "entornos aislados" para python.

¿Qué conseguimos con esto?, bien, con un poco de configuración podemos conseguir un sistema de librería python totalmente independiente del instalado en el sistema. ¿Por qué?,
puede ser que en un momento dado, necesitemos una versión concreta de una librería para un proyecto en Django, inferior a la versión utilizada en en sistema y un larguísimo etc.

Cuando en un programa python se realiza un "import" en intérprete además de buscar en el directorio local, busca en una variable llamada "PYTHONPATH", en nuestro caso práctico:
Código: [Seleccionar]
[~]# python
Python 2.6.5 (r265:79063, Feb 28 2011, 21:55:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
...

El resultado son las rutas donde el interprete python buscaría módulos.

Ejemplo práctico, modulo "pytranslate", un módulo que utiliza la api de google translate para traducción:
Código: [Seleccionar]
[~]# python
Python 2.6.5 (r265:79063, Feb 28 2011, 21:55:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pytranslate
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pytranslate

Como vemos el intérprete de python no encuentra el módulo, de momento dejémoslo ahí y cuando hayamos instalado virtualenv volveremos a pytranslate.

virtualenv y virtualenvwrapper


La instalación no puede ser más sencilla...

Código: [Seleccionar]
[~]#pip install --install-option="--user" virtualenvwrapper
La opción
Citar
--install-option="--user"
hará que virtualenv y virtualenvwrapper se instalen en ~/.local

A partir de aquí, creamos un directorio donde almacenaremos nuestro entornos python, por ejemplo "python_envs"

Código: [Seleccionar]
cd
mkdir python_envs
export WORKON_HOME=$HOME/python_envs
source $HOME/.local/bin/virtualenvwrapper.sh

Con export y source estamos indicándole al intérprete de comandos que cree una variable WORK_ON con el path a nuestro contenedor de entornos y que ejecute un script que pone en marcha el sistema
Para que podamos automatizar este proceso editamos nuestro .bashrc, e incluimos a final:

Código: [Seleccionar]
export WORKON_HOME=$HOME/python_envs
export VIRTUALENVWRAPPER_VIRTUALENV=$HOME/.local/bin/virtualenv
source $HOME/.local/bin/virtualenvwrapper.sh
 

Ahora podemos ponernos manos a la obra, creando nuestro primer entorno:

Código: [Seleccionar]
[~]# workon
[~]# mkvirtualenv test
[~]# pip install ez_setup
[~]# pip install pytranslate

Con esto tenemos nuestro primer entorno en marcha, además hemos instalado 2 módulos en el, ahora a probarlos toca:

Código: [Seleccionar]
[~]# python
Python 2.6.5 (r265:79063, Feb 28 2011, 21:55:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pytranslate
>>> pytranslate.translate("Hola mundo!",sl="spanish",tl="english")
'Hello world!'

Et voilà!

Páginas: [1]

Página generada en 0.085 segundos con 33 consultas.