私が書いているプログラムを構成するスクリプトが増えていて、ソースツリーを整理して正しくパッケージ化する時間になったと判断しました。私はこれが簡単な質問だと確信していますが、私はそれを行う方法を見つけることができません。モジュール内のパッケージ
私はモジュールのグループを持っていますが、それらは一緒にフィットしますが、トップレベルのモジュールでなければならず、モジュール名の接頭辞を付けて、実際にはより低いレベルのパッケージにする必要があります。
たとえば、import mystuff
にアクセスして、すべてのmystuffを取得したいとします。でも私はimport mystuff.test.test1
にできるはずです。私は
myprogram/
mystuff.py
mystuff/
__init__.py
tests/
__init__.py
test1.py
test2.py
...
、私はこのようなソースツリーを作成するだろうと思ったが、この場合には、そう
import mystuff
は(限り
mystuff/
の
__init__.py
が空であるとして)何もしません、
mystuff/
は常に
mystuff.py
よりも優先されますようです。
希望の動作を得るにはどうすればよいでしょうか?またはこれは不可能であり、mystuff.py
をmystuff/
に移動し、mystuff.mystuff
としてアクセスする必要があります(不要な繰り返しのようです)。
申し訳ありません。私はこれをどこかに記録しなければならないと考えていますが、私はどこかどこかを見つけることができません。 私はイグナシオの方法が正しいと信じていますが、本当に好きではありません!私がエディタで複数のファイルを開いていて、それらがすべて__init__.py
と呼ばれていると、物事が乱れることがあります。だから私は自分の構造をそのまま残し、mystuff.py
をmystuff/__init__.py
にリンクすることに決めました。なぜ私がこれをしてはいけないのかについて誰かが意見を持っているなら、私は彼らのことを聞きたい。最終的には実際に
、私はtar.gz
を作成するときにシンボリックリンクを逆参照のdistutilsを作るための方法を見つけることができなかったので、私は、他の方法で回避をリンクしています、と私は私の出力でリンク切れになってしまいました。この方法は同じ効果を持ち、それを幸せに保ちます。
はい。 Ignatioの応答が正しいので、あなたはそれを行うべきではありません。 – cwallenpoole
@cwallenpoole。同意しましたが、終わりには私が設定した方法は*正確に*同じ効果があります。 'sdist'の出力さえ、私のリンクなしでIgnacioの出力とまったく同じになります。だから、それは開発中に私にとってより簡単になります。なぜこれが悪いことなのか、他の理由がありますか? – tjm