2009-11-23 10 views
7

ほとんどのプログラミング環境では、コードがいくつかの部分にどのように分散され、どのように相互作用するかは明らかです。 Pythonでは私は完全に失われているようです。Pythonアプリケーションのレイアウトはどのように見えるのですか?

  • Pythonアプリケーションのレイアウトはどのように見えますか?

    現在、私は持っている:

     
    setup.py 
    application_name/ 
        __main__.py 
        __init__.py 
        views/ 
        controllers/ 
        model/ 
        resources/ <- images, videos, ... 
    
  • どのようにアプリケーションを実行するのですか?

    私は、次の内容

    #!/usr/bin/env python -m "application_name" 
    

    1でも、この目的のために__main__.pyを使用すべきでランナースクリプトを持っていますか?ランナースクリプトは必要ですか?

  • アプリケーションの一部をどのようにインポートする必要がありますか?

    from . import controllers.MainWindow 
    

application_name/__main__.py中(Pythonの2.6)例えば

はどのようにあなたのアプリケーションをレイアウトしますか?

+1

重複:http://stackoverflow.com/questions/171785/how-do-you-organize-python-modules、http://stackoverflow.com/questions/ 527919/how-to-proper-organisation-a-package-module-dependency-tree、http://stackoverflow.com/questions/501945/how-to-modularize-a-python-application –

答えて

5

この質問へのいくつかの部分は、私は順番にそれらに答えることをしようとするでしょうがあります。

1:その本当にあなた次第、そのディレクトリを確立するためのものを超えて、高速ハードと-ルールなしはありませんpackageなどと扱われます。いくつかのフレームワークは、スクリプトを使ってディレクトリ構造を規定しています(RailsがRubyの世界でそうしているようなものです)が、これは純粋に指定されたフレームワークの便利さです。他の言語と同じように論理的に意味を持たせるように、コードとモジュールを整理します。

2:あなたが持っているものは絶対に素晴らしいものです。あるいは、distutilsを使用している場合はinstalled script、.eggインストールの一部としてconsole_scriptを使用することもできますし、最後の手段としてmain.py(または名前を付けて)スクリプトを直接呼び出すこともできます。 console_scriptはかなり一般的ですが、たとえばnoseのテストフレームワークなどのツールで使用されています。

3:この特定トピックについては、PEPがあります。私の経験では、相対的なものへの絶対的な輸入を本当に好むべきです。この動作を強制するには、行うことができます。

from __future__ import absolute_import 
+0

明示的な相対インポートはどうですか? 'から。インポートサブパッケージ '?私は、いくつかのパッケージを移動したり名前を変更したりすると、絶対的なインポートが中断することに少し気になります。 –

+0

私はこれについて明確なルールがないのは嫌です。私はそれを正しくやっているかどうか常に分かりません。プログラマが一人で把握しなければならないことの一つであり、正確にそれをするのに多くの時間を費やしています。いくつかのガイドラインがあれば、時間を大幅に節約することができました。 (少なくとも私のために) –

+0

gs:Pythonは、多くの場所でかなり規範的です。たとえば、使用する正しいスタイルを指定するPEP8などです! (Cプログラマはこれを嫌いです...)私がリンクしているPEPは、輸入状況を明確にしようとしていますが、プロジェクトのレイアウトが立法化しにくい限り、与えられた枠組みの中ではい、そうでなければ議論の余地がある。最良のことは、多くのコードを読んで、好きなものを見ることです。 – jkp

関連する問題