2010-03-24 19 views
12

Soy un desarrollador de .NET que sabe muy poco sobre Python, pero quiero darle una prueba de manejo para un pequeño proyecto en el que estoy trabajando.¿Cómo configuro un entorno de desarrollo de Python en Linux?

¿Qué herramientas y paquetes debo instalar en mi máquina? Estoy buscando un entorno de desarrollo común, algo integral.

Probablemente ejecutaré Ubuntu 9.10, pero soy flexible. Si Windows es una mejor opción, también está bien.

Edit: Para aclarar, no estoy buscando el mínimo indispensable para ejecutar un programa de Python. No esperaría que un desarrollador de .NET novato utilice el bloc de notas y un compilador. Recomendaría Visual Studio, NUnit, SQL Server, etc.

+2

Ya tiene configurada su configuración de entorno de desarrollo. Simplemente ingresa python en la línea de comando. – licorna

+4

.NET necesita todos aquellos para hacer las cosas. Python, no tanto. –

+3

Entonces, ¿los desarrolladores de python no usan bases de datos ni servidores web? :) –

Respuesta

16

Su sistema ya tiene Python en él. Use el editor de texto o IDE de su elección; Me gusta vim.

No puedo decirle qué módulos de terceros necesita sin saber qué tipo de desarrollo va a hacer. Use apt tanto como pueda para obtener las bibliotecas.


Para hablar con tu edición:

Esto no es minimalista, como entregar un bloc de notas .NET novato y un compilador: un editor de texto decente y la stdlib son todo lo que necesitas para empezar. Es probable que necesites bibliotecas de terceros para desarrollar cualquier tipo de aplicación que estés escribiendo, pero no puedo pensar en ningún módulo de terceros todos que los programadores de Python realmente necesiten o quieran.

Paralelamente al mundo de la programación de .NET/Windows, no existe un solo conjunto de herramientas de desarrollo que esté por encima de todas las demás. Diferentes personas usan diferentes editores mucho. En Python, un espacio de nombres de módulo está completamente dentro de un solo archivo y la organización del proyecto se basa en el sistema de archivos, por lo que las personas no se apoyan en sus IDEs tan duro. Diferentes proyectos usan software de control de versiones diferentes, que ha estado en auge con caras nuevas recientemente. La mayoría de estos son mejores que TFS y todos son 1000 veces mejores que SourceSafe.

Cuando quiero una sesión interactiva, uso el intérprete de Python vanilla. Existen varios intérpretes más sofisticados: bpython, ipython, IDLE. bpython es el menos elegante de estos y se supone que es bueno para no hacer cosas raras. ipython e IDLE pueden llevar a errores extraños donde el código que funciona en ellos no funciona en Python normal y viceversa; He visto esto de primera mano con IDLE.

Para algunas de las herramientas que se le preguntó acerca y algunos otros

  • En .NET que usaría NUnit. En Python, use el módulo stdlib unittest. Hay varias extensiones de terceros y corredores de prueba, pero unittest debería ser adecuado para usted.
    • Si realmente desea ver algo más allá de esto, obtenga unittest2, un soporte de la versión 2.7 de unittest. Ha incorporado todas las mejores cosas de las herramientas de terceros y es realmente ordenado.
  • En .NET debería usar SQL Server.En Python, puede usar PostgreSQL, MySQL, sqlite o alguna otra base de datos. Python especifica una API unificada para las bases de datos y la migración de una a otra suele ser bastante fluida. sqlite está en el stdlib.
    • Existen varios modelos relacionales de objetos para hacer que las bases de datos sean más abstractas. SQLAlchemy es el más notable de estos.
  • Si está programando la red, obtenga Twisted.
  • Si está haciendo matemática numérica, numpy y scipy.
  • Si está haciendo un desarrollo web, elija un marco. Hay alrededor de 200000: Pylons, zope, Django, CherryPy, werkzeug ... No me molestaré en comenzar una discusión recomendando una. La mayoría de estos funcionará felizmente con varios servidores con una configuración rápida.
  • Si desea realizar el desarrollo de la GUI, hay bastantes enlaces de Python. El stdlib se envía con enlaces Tk con los que no me molestaría. Hay enlaces wx (wxpython), enlaces GTK + (pygtk) y dos conjuntos de enlaces Qt. Si desea realizar el desarrollo de la GUI nativa de Windows, obtenga IronPython y hágalo en .NET. Hay enlaces de win32, pero harán que quieras arrancarte el cabello tratando de usarlos directamente.
+2

es posible que desee agregar una nota a 'pip' para instalar bibliotecas de terceros. – Kimvais

+1

+1: "Baterías incluidas". Debe de lo que necesita ya está en la instalación estándar. –

+0

¡Gracias por la información adicional!Me doy cuenta de que no puedo * necesitar * todas las cosas que mencionas, pero como recién llegado a la comunidad de Python, es realmente útil saber qué herramientas hay disponibles y de uso común. –

2

Python (duh), setuptools o pip, virtualenv y un editor. Sugiero geany, pero así soy yo. Y, por supuesto, cualquier otro módulo de Python que necesite.

3

Si inicia una terminal y escribe python, obtendrá un intérprete, donde podrá comenzar a probar cosas.

En caso de que no lo haya visto, consulte el libro Inmersión en Python, es gratis en línea. http://www.diveintopython.org/

Siga los ejemplos del libro utilizando el intérprete.

Para almacenar su trabajo puede usar cualquier editor; Vim o EMACS podrían ser los más poderosos, pero también los más difíciles de aprender al principio. Si quiere un "tradicional" IDE, puede probar WingIDE. http://www.wingware.com/

Después de que empiece a sentirse más cómodo con python, debe probar con un intérprete mejorado; intente ipython. http://ipython.scipy.org/moin/

Cuando empiece a desarrollar un proyecto más serio, necesitará obtener módulos adicionales. Aquí tienes dos opciones; 1) Use sus herramientas de distribución para instalar módulos adicionales; o 2) Descargue los módulos que necesita directamente de sus sitios e instálelos manualmente. Usted será responsable de actualizarlos, por supuesto.

Tendrás que decidir por ti mismo qué camino tomar. Personalmente, prefiero descargar e instalar módulos adicionales de forma manual.

+1

objetivos DIP 2.3 y 3.x, ninguna de las dos versiones es ideal para un alumno hoy en día; ha habido cambios bastante grandes entre 2.3 y 2.6, y 3.1 no cuenta con el soporte suficiente para construir muchos programas útiles. También está lleno de ejemplos desagradables y reclamos técnicamente incorrectos. Cuando alguien está aprendiendo Python como su primer idioma, generalmente recomiendo How To Think Like a Computer Scientist http://tinyurl.com/thinkcspy2e Si alguien ya sabe programar bien, por ejemplo, si el OP es un usuario avanzado de C#, el tutorial oficial http://docs.python.org/tut/ suele ser suficiente para ponerlos en marcha –

+0

+ para ipython. Quiero que sea mi shell :) –

4

Como estoy acostumbrado a Eclipse, encuentro que Eclipse + PyDev es conveniente para Python. Para cálculos rápidos, Idle es genial.

He usado Python en Windows y en Ubuntu, y Linux es mucho más limpio.

+1

+1 para PyDev. Es un gran IDE, y también es agradable permanecer en un único IDE para otros proyectos (por ejemplo, Java y Perl). – bedwyr

+1

BTW, en lugar de (o además de) IDLE es posible que desee comprobar DreamPie (http://dreampie.sourceforge.net/). No lo he usado mucho, pero parece interesante. – Javier

6

Para reducir la posibilidad de afectar/regar la instalación del sistema de python, generalmente instalo virtualenv en la instalación de ubuntu python. Luego creo un virtualenv en mi directorio de inicio para que los siguientes paquetes que instale a través de pip o easy_install no afecten la instalación del sistema.Y agrego la papelera de ese virtualenv a mi camino a través de .bashrc

$ sudo apt-get install python-virtualenv 
$ virtualenv --no-site-packages ~/local 
$ PATH=~/local/bin:$PATH #<----- add this to .bashrc to make it permanent 
$ easy_install virtualenv #<--- so that project environments are based off your local environment rather than the system, probably not necessary 

Instalar su editor favorito, me gusta emacs + rope, pero los editores son una preferencia personal y hay un montón de opciones.

Cuando comienzo un nuevo proyecto/idea, creo un nuevo entorno virtual para ese proyecto, para que no afecte las dependencias en ningún otro lado. Como odiaría que algunos de mis proyectos se rompieran debido a una actualización de una biblioteca, tanto el proyecto como el nuevo dependen.

~/projects $ virtualenv --no-site-packages my_new_project.env 
~/projects/my_new_project.env $ source bin/activate 
(my_new_project.env)~/projects/my_new_project.env $ easy_install paste ipython #whatever else I think I need 
(my_new_project.env)~/projects/my_new_project.env $ emacs ./ & # start hacking 

Al crear un nuevo paquete ... con el fin de tener algo que será easy_installable/pippable uso paster create

(my_new_project.env)~/projects/my_new_project.env$ paster create new_package 
(my_new_project.env)~/projects/my_new_project.env/new_package$ python setup.py develop new_package 

Ese es el material común por lo que yo puedo pensar en él. Todo lo demás sería una herramienta de control de editor/versión específica

1

Si recién está empezando con Python, en realidad no estoy de acuerdo con la complejidad de virtualenv (que creo que puede ser abrumadora), al menos hasta que Tengo una comprensión firme de los fundamentos de Python (especialmente con respecto a la administración de bibliotecas/dependencias).

Si utilizas Ubuntu y el entorno de escritorio Gnome, gedit es el editor de texto predeterminado (GUI), y tiene un gran soporte para Python construido en. Así que mi recomendación es comenzar con el pitón preinstalado y gedit (que es pretty extensible on its own).

0

Probablemente le gustaría dar una oportunidad a NetBeans Python IDE. Puede elegir usar Windows/Linux.

0

Base de datos: sqlite (inbuilt). Sin embargo, es posible que desee SQLAlchemy.

GUI: tcl está incorporado, pero se recomiendan wxPython o pyQt.

IDE: Uso inactivo (incorporado) en Windows, TextMate en Mac, pero es posible que le guste PyDev. También he escuchado cosas buenas sobre ulipad.

Numéricos: numpy.

Código rápido en línea: muchas opciones. Me gusta impulsar el tejido (parte de scipy), pero podría buscar ctypes (para usar dlls), Cython, etc.

Servidor web: demasiadas opciones. Django (más Apache) es el más grande.

Prueba unitaria: incorporada.

Pyparsing, simplemente porque.

BeautifulSoup (u otro buen analizador de HTML).

hg, git, o algún otro buen VC.

Trac, u otro sistema de errores.

Ah, y StackOverflow si tiene alguna pregunta.

1

No necesita mucho. Python viene con "Baterías incluidas"."

Visual Studio == IDLE. Ya lo tienes. Si quieres más ambiente IDE-como, instalar Komodo Edit.

NUnit == unittest. Ya lo tienes en la biblioteca estándar.

==

SQL Server sqlite. ya lo tienes en la biblioteca estándar.

Detener la pérdida de tiempo preparando todo. ya está ahí en la instalación básica de Python.

ponerse a trabajar.

Linux, BTW, es principalmente un entorno de desarrollo. Fue diseñado y desarrollado por desarrolladores para desarrolladores. Windows es un entorno de usuario final que debe completarse para el desarrollo.

Linux se centró originalmente en los desarrolladores. Todas las herramientas que necesita ya están allí o son parte de simples instalaciones de yum o RPM.

2

Llegar a Python desde .NET mundo

Saltando en el mundo Linux desde un NET/Windows fondo puede ser un poco desconcertante (pero os animo a seguir intentando Linux)

Pero Sugeriría a cualquiera que venga de Windows que se quede con Windows por un tiempo. vaya a www.Activestate.com y descargue su paquete de Python: incluye todas las extensiones de win32com de Mark Hammond y también incluye un IDE completo y rápido "pythonwin"

He hecho un desarrollo profesional real con solo esta configuración en un caja de Windows - ¡un .msi de 14MB y listo!

Ahora, para usar Python en el DLR (tiempo de ejecución del lenguaje común dinámico), necesita descargar IronPython. Este es un intérprete independiente, que también fue escrito originalmente por Mark Hammond en Microsoft y está en ironpython.org.

Con esto, puede ejecutar código como (de Wikipedia) ::

import clr 
clr.AddReference("System.Windows.Forms") 
from System.Windows.Forms import MessageBox 
MessageBox.Show("Hello World") 

Ahora puede acceder a cualquier código .NET de pitón.

Cuestiones relacionadas