6
votes

Quels cadres python non orientés Web existent?

Je cherche un bon cadre sur lequel baser mon développement des applications.

in php J'utilise Symfony , dans ActionScript PUREMVC , ce sont tous des cadres MVC.

Je recherche un cadre python étant orienté vers le développement d'applications à usage général , pas une application Web. Je veux dire, juste des applications, des services, des démons, etc. Parfois, je n'ai pas de vision réelle à mettre en œuvre, juste un service RPC. D'autres fois, je dois coder pour un port série, ou implémenter un planificateur de commandement ou autre.

Quel est le meilleur logiciel open source que je puisse penser comme une base standard pour mes besoins? Pourquoi pensez-vous que votre suggestion remplira mes exigences sur ses concurrents?

EDIT:

Pour "Objectif général" Je veux dire ne pas être fortement lié à être avec ou sans interface graphique, étant un démon ou une application de ligne de commande, être multiprocessé / multithread ou non. Être général, donnant une bonne structure d'architecture, ne pas être un outil particulier.

edit 2:

Je voudrais expliquer que la question concerne la l'existence éventuelle d'un ou plusieurs "cadres" n'ayant pas limité à un cas d'utilisation particulière, mais pouvoir donner un bien et bien normalisé Structure / architecture de démarrage, avec quelques meilleures pratiques appliquées, étant une ligne directrice, quelque chose de pouvoir orienter la planification de l'architecture de la demande elle-même, non de leur comportement concernant les tâches à effectuer.

Je pense que cette question n'est pas si subjective, peut-être mal exposée à cause de mon anglais, mais je suppose que c'est légal


11 commentaires

Que signifie "but général"? Gui? Ligne de commande non-gui?


Objet général signifie exactement "objectif général" :) ne pas être limité d'être avec ou sans interface graphique, être un démon ou une application de ligne CMD, multiprocessions / multithread ou non. Être général, donnant une bonne structure d'architecture, ne pas être un outil particulier.


Évitez de poser des questions subjectives, argumentatives ou nécessitant une discussion prolongée.


@Albert: Veuillez mettre à jour votre question avec des faits supplémentaires. Ne commencez pas votre propre question lorsque vous pouvez le mettre à jour.


@Brian Neal, je n'ai rien demandé subjectif, s'il n'est pas subjectif de choisir une langue sur une autre et ainsi de suite. Je demande des argumentations réelles, pas des sensations


Voter pour fermer, malgré une bonne réponse de Charles Duffy. Subjectif / argumentatif


Votre question nécessite une discussion prolongée. Stackoverflow n'est pas un tableau de discussion, comme indiqué dans la FAQ.


Je trouve drôle que la question soit étiquetée "Développement d'entreprise". De toute évidence, le développement normal de Python ne fera pas, l'astucieux veut faire le développement de l'entreprise Python.


Ce n'est pas parce que la plupart des gens ne sont pas savoir sur les cadres généraux ne signifie pas qu'ils n'existent pas. ;-) Mais oui, bien sûr, je pense que les caractéristiques d'architectures de composants Zope doivent faire partie de la bibliothèque de langue / standard, puis sa question serait discutable. ;)


@Albert - Brian a généralement raison, dans ce "meilleur", est un contexte subjectif, particulièrement absent - cela dépend de sa nature sur la perception de l'importance relative des divers coûts et avantages impliqués dans le processus de prise de décision et ces classements sont Contexte sensible par la nature; Sans contexte, ils sont très subjectifs.


La question n'est pas particulièrement subjective, mais elle est vague et ouverte. Mais la plupart des gens des peuples avec c'est qu'ils pensent qu'un cadre d'application générique dans Python est inutile, ce qui n'est pas. Mais ensuite, nous commençons à devenir subjectifs et argumentatifs. :)


8 Réponses :


9
votes

Pour les services réseau nécessitant de nombreuses connexions asynchroniquement, un grand nombre de personnes favorisent Twisted .

En dehors de cette (et des applications Web), toutefois, il y a simplement moins de besoin de cadres globaux de Python qu'avec de nombreuses autres langues - la langue principale elle-même est expressif, puissante et livrée avec des piles incluses; Pourquoi ajouter quelque chose?


5 commentaires

Afin de ne pas réinventer la roue? : P


@Albert, la plupart des roues dont vous pourriez avoir besoin font déjà partie de la bibliothèque standard.


Comme je l'ai écrit dans la modification de la question, je ne parle pas de "outils", mais des architectures


@Albert, votre question est trop générale pour obtenir une meilleure réponse que cela. Si tout ce que vous savez sur votre demande, c'est que c'est une application, il n'y a pas grand chose à suggérer.


@Triptych: En fait, il y a. La ZCA. Voir ci-dessous.



6
votes

Vérifiez l'architecture du composant Zope. C'est une architecture d'utiliser et de réutiliser des composants. Il est principalement utilisé dans les applications Web car il est utilisé dans Zope (comme son nom l'indique), mais il n'est en aucun cas spécifique Web.

J'ai écrit une introduction rapide: http://regebro.wordpress.com/2007/11/ 16 / a-python-composant-architecture /

Voici un livre en ligne à ce sujet: http://www.muthukadan.net/docs/ zca.html

Et voici un livre non en ligne: http: / /www.amazon.com/dp/354076447x


0 commentaires

3
votes

"Ne pas être limitée d'être avec ou sans interface graphique" n'a pas beaucoup de sens.

Gui's - Généralement - sont assez complexes et nécessitent un cadre. Les gens utilisent TKINTER , Pyqt , pygtk , wxwidgets , etc. pour construire des interfaces graphiques.

"Daemon ou une application de ligne CMD" ne nécessite aucun cadre. Cela fait déjà partie de la bibliothèque standard.

"MultiProcess / multithread ou non" fait déjà partie de la bibliothèque standard.

Depuis, "Général" n'a pas beaucoup de sens, il y a plusieurs réponses:

  • Pour le développement de l'interface graphique, oui, il existe de nombreux cadres. "Meilleur" est subjectif.

  • pour le développement non-GUI, il n'y a pas de «cadres supplémentaires» à en parler.

  • pour "Mise en réseau pilotée par événement", il y a torsadé .

  • pour "Cartographie relative à un objet", il y en a plusieurs. "Meilleur" est subjectif.


0 commentaires

3
votes

J'ai de la difficulté à imaginer ce qu'un "cadre" serait-ce unifie "avec ou sans interface graphique, étant un démon ou une application de ligne CMD, en tant que multiprocession / multithread ou non". Que vous attendez-vous à ce que ce cadre fournisse?

Les cadres sont conçus pour encapsuler diverses tâches de base - interface graphique ou Web, ou asynchronicité, ou quoi que ce soit - de sorte que, comme vous le disiez, les utilisateurs n'ont pas à les réinventer. Mais vous excluez explicitement toutes les choses qui font un cadre un cadre, donc je ne vois donc pas ce qui vous reste.

À propos de la seule chose que vous n'excluez pas l'accès à la base de données (ORM). Si c'est tout ce que vous voulez, regardez SQLALCHEMY.


1 commentaires

Ok, laissez-moi m'aider à choisir un mot meilleur que "framework" .. Peut-être que je suis juste pauvre en dict, mais ma deuxième édition devrait clarifier ce que je veux dire (j'espère)



1
votes

La bibliothèque principale et la bibliothèque standard de Python est un cadre incroyable par eux-mêmes.

Seules les langues qui sont déficientes d'une certaine manière ont besoin d'un cadre de développement efficace des applications (Exemple: JavaScript nécessite JQuery ou Prototype ).

L'approche générale avec Python est la suivante:

  1. vérifier la bibliothèque standard; Cela a probablement ce dont vous avez besoin.
  2. S'il y a un grand composant qui ne figure pas dans la bibliothèque standard, il y a probablement une bibliothèque spécifique qui aide avec elle.

0 commentaires

0
votes

Les liaisons python à GOBJECT et GLIB fournissent un cadre d'application non liée à l'interface graphique ou quoi que ce soit-- Cependant, s'il doit être lié à une interface utilisateur, GTK + se rapproche.

Glib fournit des fonctions telles qu'une application principale d'application, des événements, des signaux et des rappels. GOBJECT implémente la classe de base pour des objets avec des fentes de signaux connectables.

Glib offre également beaucoup d'abstraction du système de fichiers, y compris VFS, la manutention des ordures, la surveillance du répertoire, les métadonnées de fichier.

La référence Python est ici:

http://library.gnome.org/devel/pygObject/stable /index.html


0 commentaires

6
votes

Je devinerais ce que vous recherchez pourrait être le Suite à outils de guizanie (ETS), en particulier envisager (architecture de plug-in extensible pour les applications scientifiques).


2 commentaires

Très intéressant. Dès que j'aurai réalisé un regain plus profond dans la suite, je vais accepter votre réponse. +1 pour l'instant.


Citation Albert + 1 pour vous. Je me demandais quelque chose de plus spécifique que la réponse générale donnée jusqu'à présent



0
votes

Je ne pense pas ce que vous demandez existe d'exister. Les cadres fournissent une trame commune pour des applications similaires, alors que vous demandez quelque chose pour toutes les applications. Presque par définition, une telle chose ne peut exister.

Au lieu de cela, pour chaque type d'application, sauf si vous ne trouvez un cadre pour ce type d'application spécifique, vous fournissez le cadre vous-même et utilisez des bibliothèques pour fournir des fonctionnalités communes partagées entre les applications. Python a de nombreuses bonnes bibliothèques qui viennent comme standard et plus peuvent être trouvées à PYPI .


0 commentaires