2012-03-27 7 views
0

私は現在、カスタムデザインのPythonパッケージとそのパッケージを使用する一連のスクリプトを持つプロジェクトに取り組んでいます。パッケージを見つけずにどこからでもスクリプトを実行できるように、これを構造化する最良の方法は何ですか?私は同様にパッケージのテストを構築したいと思いますので、私のような何か有していると考えていた:パッケージとスクリプトを含むPythonプロジェクトの正しい構造ですか?

 
project/ 
|--src 
| |--some_package 
|--test 
|--scripts 

をしかし、私は、スクリプトを持っているかどうかはわかりません、私は実行することができるように私のカスタムパッケージをインポートします/どこでも "パッケージが見つかりません"というエラーなしでスクリプトを参照できます。どんな助けもありがとう!

答えて

0

これらのスクリプトを他のマシンにインストールして実行する方法の1つは、distutilsを使用してそれらをパッケージ化することです。 http://docs.python.org/library/distutils.htmlを参照してください。

__init__.pyファイルをツリー上のディレクトリに置くと、Pythonはそのディレクトリをパッケージとして表示し、そこからモジュールをインポートすることができます。あなたはこのような構造がある場合たとえば、:some_script.pyに

project/ 
|some_script.py 
    |--some_package 
     |__init__.py 
     |some_module.py 
|--test 
    |__init__.py 
|--scripts 
    |__init__.py 

を、あなたはこれを行うことができます:あなたがどこかのモジュールを置くために精巧なインストールすることなく、サブディレクトリからの輸入を行うことができるようになります

import some_package.some_module 

Pythonのパスで。 'test'と 'scripts'ディレクトリについても同じことができます。 (あなたはおそらくすでにこのことを知っているが、__init__.pyはちょうど空のファイルにすることができます。)

+0

うんで、このためのドキュメントがあり、それは醜いだ、と私は本当にそれを行うする必要がありますする必要はありませんすべてのスクリプトの先頭に表示されます。それに加えて、私は絶対パスが必要であると確信しています。この場合、私のパスはスクリプトを使用する他の人のパスと異なり、スケーラビリティはありません。 – Eli

+0

あなたの質問は、あなたが他のマシンにインストールしたかったとは言いませんでした。その場合はhttp://docs.python.org/library/distutils.htmlが必要です。 – alan

+0

私は答えを編集して、Pythonパスを掘り下げずに別のアプローチを示しました。私は知らない、あなたはこれも醜いと思うかもしれない。 – alan

関連する問題