martes, 22 de abril de 2014

Instalación OpenSUSE 13.1 - VirtualEnv - Python - Django - MySQL

Como parte de un proyecto en mi trabajo es necesario utilizar django dentro de opensuse, para lo cuál realizaremos lo siguiente:

1. Instalación de VirtualEnv
Utilizando la terminal ejecutamos:
> sudo zypper install python-virtualenv  
NOTA: Será necesario tener instalado zypper en caso de no tenerlo a travéz de Yast.

2. Iniciar el proyecto con virtualenv
Utilizando los siguientes comandos ...
> mkdir miproyecto  
> virtualenv vmp  


3. Instalar el soporte de Mysql
Para instalar el soporte de MySQL es importante considerar tener el MySQL instalado, para instalar en OpenSUSE puede ser la siguiente guía: http://omaryahir.blogspot.mx/2014/04/opensuse-131-y-mysql.html

Una vez que el MySQL se encuentra instalado ejecutamos:
> sudo zypper instalpython-devel 
> sudo zypper install libmysqlclient-devel 
> sudo zypper install gcc 

4. Activamos la maquina e instalamos django
Con el punto anterior tenemos una maquina virtualenv con nombre vmp por lo que la activaremos con los siguientes comandos para instalar la versión más reciente de django y el soporte de mysql.
> source vmp/bin/activate  
(vmp) > pip install django  
(vmp) > pip install mysql-python  

Con lo anterior debe de poder funcionar correctamente django con soporte MySQL en OpenSUSE.

Espero te sea de utilidad !



Referencias:







jueves, 17 de abril de 2014

OpenSUSE 13.1 y MySQL

Haciendo pruebas con OpenSUSE 13.1 me doy cuenta de que viene precargado mariadb y no lograba activar y habilitar el MySQL, me funciono realizando lo siguiente:

1. Instalar a traves de YaST mysql-community-server; esto implicará que el mismo YaST solicite desinstalar mariadb-server y mariadb-client; se debe autorizar la desinstalación ya que la versión mariadb que viene preinstalada en OpenSUSE 13.1 no es compatible con MySQL 5.6.

2. Una vez instalado mysql-community-server se debe crear un archivo usando el siguiente comando:
    • sudo vi /lib/systemd/system/mysqld.service
    • El contenido del archivo debe ser el siguiente:
[Unit]
Description=MySQL Server
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/mysql start
ExecStop=/etc/rc.d/mysql stop

[Install]
WantedBy=multi-user.target

3. Posteriormente usar el siguiente comando:
    • sudo systemctl daemon-reload 
4. Entrar nuevamente a YaST en la sección de System, y luego en Service Manager localizar mysqld y habilitar el servicio.

5. Posteriormente cerrar el YaST y en la terminal teclear:
    • sudo mysql_secure_installation
Esta opción solicitará la contraseña del root, si es la primera vez que se ejecuta es en blanco; posteriormente solicitará algunos datos de la instalación.
6. Finalmente regresar a YaST nuevamente a System y Service Manager localizar mysqld e indicar que debe iniciar el servicio.


De esa forma me funciono, espero te sea de utilidad !!! 


Referencias:
http://superuser.com/questions/384365/systemctl-enable-differs-from-systemctl-start-how
http://en.opensuse.org/SDB:MySQL_installation
https://bugzilla.novell.com/show_bug.cgi?id=846422
https://bugzilla.novell.com/show_bug.cgi?id=840159


lunes, 17 de marzo de 2014

VirtualEnv + Python MySQL error: command 'cc' failed with exit status 1 Mac OSX

Tratando de usar Django + MySQL dentro de virtualenv, en un entorno Mac OSX Mavericks, al parecer el procedimiento previo que había seguido ya no funciona igual; al correr el comando sudo pip install mysql-python, me genera el siguiente error:

error: command 'cc' failed with exit status 1

La forma en como lo solucione fue la siguiente:

Instale el XCode desde la AppStore, no se si este se encuentre gratuito ya que hace ya un tiempo lo había comprado.

Posteriormente utiizando el comando:
$ vi ~/.bash_profile 

Agregue los siguientes parametros:
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
 
Una vez realizado lo anterior ahora si utilizando el comando:
$ pip install mysql-python

Quedará instalado; es probable que salgan algunos warnings, sin embargo deberá ser posible utilizarlo para desarrollar.


Espero te sea de utilidad !



Referencias:
http://stackoverflow.com/questions/19769648/cant-install-discount-with-pip-error-command-cc-failed-with-exit-status-1
http://stackoverflow.com/questions/22413050/cant-install-python-mysql-library-on-mac-mavericks?lq=1

miércoles, 15 de enero de 2014

Copiar archivos vía ssh (Amazon) utilizando el archivo .pem


Bien este post es de solo una instrucción sin embargo considere importante dejarlo aquí para no andarlo buscando posteriormente ya que el comando no me funcionaba, se trata de copiar un archivo desde el equipo al servidor vía ssh utilizando un archivo pem especificamente lo estoy haciendo con un servidor Amazon EC2, les dejo el comando:

$scp -i /Ruta/al/archivo.pem -P [puerto] arch_origen.txt root@[IP]:/ruta/destino/arch_destino.txt

Con esto copiará el archivo arch_origen.txt en la carpeta donde se esta corriendo el comando y lo dejará en la /ruta/destino/ con el nombre arch_destino.txt


Espero te sea de utilidad !


Referencias:
http://www.howtogeek.com/66776/how-to-remotely-copy-files-over-ssh-without-entering-your-password/
http://stackoverflow.com/questions/11388014/using-scp-to-copy-a-file-to-amazon-ec2-instance
http://www.hypexr.org/linux_scp_help.php
http://superuser.com/questions/188411/ssh-why-doesnt-get-command-work

sábado, 11 de enero de 2014

GraphViz + Django 1.6.1 + OSX

GraphViz es una herramienta muy útil para generar automáticamente diagramas UML de las clases que se tienen en un proyecto, anteriormente había hecho una entrada relacionada con dicha herramienta sin embargo se ha actualizado y ahora son menos pasos:

PASO 0 Instalar django-extensions

$ sudo easy_install django-extensions

PASO 1 Instalar GraphViz

Puedes descargarlo desde aquí: http://www.graphviz.org/Download_macos.php

PASO 2 Instalar el pygraphviz

$ sudo pip install pygraphviz

PASO 3 Instalar herramientas adicionales:

$ sudo pip install pyparsing==1.5.7
$ sudo pip install pydot

PASO 4 Modificar el archivo settings.py añadiendo dentro de INSTALLED_APPS django_extensions:

INSTALLED_APPS = (
    'django.contrib.admin',
    ...
    'django_extensions',
)


USO

Con lo anterior ya tenemos instalada la herramienta podemos ver la ayuda de la siguiente forma:
$ python manage.py graph_models --help

Para generar rapidamente el diagrama en formato png:
./manage.py graph_models -a -g -o mi_proyecto.png


Saludos y espero te sea de utilidad !




lunes, 6 de enero de 2014

Instalar Django + MySQL + OSX Guía Rápida (5 Pasos Generales)

Esta es una guía rápida que utilizo para desarrollar proyectos con Django:

PASO 0 Instalando herramientas de desarrollo 

Deberás tener MySQL instalado, debido a los cambios que generalmente existen una opción es entrando en el siguiente link (Ojo es importante que lo manejes todo con 64bit o 32bit, te recomiendo todo lo que instalemos en 64bits):
http://dev.mysql.com/downloads/mysql/

Si ya tienes instalado virtualenv no necesitas realizar este bloque de comandos 

$ sudo easy_install -U distribute 
$ sudo easy_install pip
$ sudo pip install virtualenv

Instalar librería para enlace de Python con MySQL compatible con Django


NOTA: Como prerequisito instale: wget.

Descargar el mejor instalador para mac y ponerlo a funcionar, aquí la info: 
http://brew.sh



PASO 1 Inicializando Proyecto

Crear el directorio:
$ mkdir miproyecto
$ cd miproyecto

Instalando utilizando una maquina virtual
$ virtualenv vmiproyecto
$ source vmiproyecto/bin/activate

Instalar django en la maquina virtual 
(vmiproyecto) $ sudo pip install django

Conexión de MySQL-Python 
(vmiproyecto) $ sudo brew install mysql    # Instala también libmysqlclient-dev
(vmiproyecto) $ sudo pip install mysql-python

Crear proyecto
(vmiproyecto) $ django-admin.py startproject miproyecto

Probar instalación:
(vmiproyecto) $ cd miproyecto
(vmiproyecto) $ python manage.py runserver

Entrar al navegador y probar con http://127.0.0.1:8000

PASO 3 Trabajando con git

Dentro de nuestro proyecto vamos a inicializar el sitio con el siguiente comando:
(vmiproyecto) $ git init

Antes de cualquier cosa le diremos a git que no debe trackear el archivo settings_local.py, que contendrá la configuración necesaria para la conectividad local, así como también los archivos *.swp ya que utilizó vim como editor; para esto debemos editar el archivo .gitignore, el cuál se debe crear si no existe y colocar dentro, el siguiente contenido (Puede usar $ vi .gitignore): 
settings_local.py
*.swp
*.pyc

Una vez realizado lo anterior utilizaremos la siguientes instrucciones para añadir a nuestro primer commit los archivos del proyecto:
(vmiproyecto) $ git add .
(vmiproyecto) $ git commit -m "Inicializando proyecto: miproyecto"

NOTA: Es recomendable utilizar algún sitio como github o bitbucket para llevar el control de versiones respaldando el código en un lugar externo, así como también el uso de diversas ramas según sea necesario.

PASO 4 Generando settings_local.py

Este archivo será diferente en el entorno de producción y en el entorno de desarrollo fue por eso que se agrego al .gitignore. Para lo anterior debemos crear el archivo settings_local.py con el siguiente contenido:

DATABASES_LOCAL = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': 'basededatos',
        'USER': 'usuario_basededatos',
        'PASSWORD': 'clave_usuario_basededatos',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }

}

PASO 5 Modificando la configuración del settings.py

#Esta instrucción sirve para cerrar la sesión una vez cerrado el navegador:
SESSION_EXPIRE_AT_BROWSER_CLOSE=True
...
#En el archivo settings.py eliminar la variable DATABASES = ... y dejar lo siguiente:
import settings.local.py
DATABASES = DATABASES_LOCAL
...
#Elegir el lenguaje del sistema en el ejemplo vemos español-México:
LANGUAGE_CODE=’es-MX’
...
#En caso de usar las zonas seleccionar la zona correcta desde: 
#http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
TIME_ZONE='America/Mexico_City'
...
#Desactivar Time Zone en ocasiones guarda la fecha y hora de acuerdo a 
#la zona horaria configurada, a menos que lo necesites puedes dejarlo
#activado, en mi caso particular no lo requiero.
USE_TZ=False


Referencias:
https://dl.dropboxusercontent.com/u/43970274/websites/desarrolloweb/index.html#settings
http://stackoverflow.com/questions/7335853/mysql-python-installation-problems-on-mac-os-x-lion
http://dev.mysql.com/doc/refman/5.0/es/resetting-permissions.html







domingo, 22 de diciembre de 2013

Explorador de Archivos en Vim (File Explorer) en OSX

Me estoy haciendo definitivamente adicto a Vim, ahora veremos como instalar el explorador de archivos.

A través de este sitio: http://www.vim.org/scripts/script.php?script_id=1658 encontramos el proyecto de github de nerdtree, con los siguientes comandos podemos realizar la instalación:

$ cd ~/.vim/bundle    #NOTA: Se debe tener el directorio bundle creado previamente
$ git clone https://github.com/scrooloose/nerdtree.git    #NOTA: Implica tener instalado git
$ cp nerdtree/autoload/nerdtree.vim ~/.vim/autoload/nerdtree.vim
$ cp nerdtree/doc/NERD_tree.txt ~/.vim/doc/NERD_tree.txt
$ mkdir ~/.vim/lib  #NOTA: Yo no tenía este directorio
$ cp -rf nerdtree/lib/nerdtree ~/.vim/lib/nerdtree
$ mkdir ~/.vim/nerdtree_plugin
$ cp -rf nerdtree/nerdtree_plugin ~/.vim/
$ cp nerdtree/plugin/NERD_tree.vim ~/.vim/plugin/NERD_tree.vim
$ mkdir ~/.vim/syntax
$ cp -rf nerdtree/syntax ~/.vim/


Una vez realizado lo anterior ya podemos usar el plugin, bien para utilizarlo de forma básica abrimos vim, de entrada ya debe mostrar como un explorador de archivos muy diferente, pero para darle más poder agregaremos al .vimrc la siguiente instrucción:

map < silent > < C-n > :NERDTreeToggle< CR > 
#NOTA: Eliminar espacios en blanco

Con la instrucción anterior abrimos y cerramos el directorio utilizando las teclas Ctrl+N cuando nos posicionamos en un archivo podemos dar ENTER para abrir el archivo o podemos presionar i para que se abra haciendo split con el archivo anterior.

 Dejaré las referencias por si quieres investigar más opciones.

Espero te sea de utilidad !



Referencias:
http://make-believe.org/in-words/post/vim-is-forever/
http://www.vim.org/scripts/script.php?script_id=1140
http://www.youtube.com/watch?v=CPu9mDpSYj0