私は個人的なお気に入りのプロジェクトをすべて Dropbox に移行しました。これにはソース コードも含まれます。
Windows または Linux マシンに切り替えることができるため、私は Python の使用を楽しんでいます。使用している OS や特定のマシンに関係なく、スクリプトを実行するだけですぐに機能します。
しかし、圧倒的に重複しているpython機能のREUSEに関してはワークフローを改善したい。インポートの不適切/怠惰な処理と、同じマイクロ機能を何度も再実装することは言うまでもなく、自分のモジュール ファイルをすべての新しいスクリプトの同じフォルダーにコピーして貼り付ける傾向があるため、このワークフローを停止することに真剣に取り組んでいますまた、より巧妙に作成された DRYed モジュールと構造化されたインポートを使用することで、強力な再利用を順守し、より高レベルで無駄のない、問題固有のスクリプトを作成します。
.Net が VisualStudio で機能する方法に「噛まれた」ことが重要なコンテキストです。すぐにusing
名前空間に移動するだけです (まあ、正しい参照が追加されていれば、そうです)。
*.pth ファイル、init .py ファイル、 への追加についてかなり多くのことを読んsys.path
できましたが、それは私をかなり混乱させてきました。
私の目標は次のとおりです。
- Dropbox (または GDrive など) 内にフォルダーを作成し、2 つのサブフォルダーを作成します
Scripts
。Modules
Scripts
フォルダーには、独立した単一ファイルのスクリプトのみが含まれ、任意のレベルのネストのサブフォルダー内にある可能性がありますが、相互に参照してはならず、システムにインストールされた Python モジュールとScripts
フォルダーにパッケージ化されたモジュールを参照するだけです。Modules
フォルダーには、フォルダーと名前空間の階層構造が含まれている必要があります。上位レベルのモジュールは下位レベルのモジュールをインポート/再利用し、これらのモジュールはシステムにインストールされた Python モジュールを使用します。
追加の望ましい機能は、一部のスクリプトをコンピューター内の別の場所に移動し (たとえば、デスクトップ フォルダーにコピーする)、最小限の変更またはまったく変更を加えずに、内部のモジュールを引き続き参照することで実行できる機能Dropbox/thatMagicFolder/Modules
です。
私のニーズを反映する典型的なワークフロー:
- 1 台のマシンでスクリプトを作成し、正しく実行します。
- 次に、別のマシン (これも Dropbox を使用) に移動し、不足している Python モジュール (Numpy や PIL など) をいくつかインストールしてから、別のマシンで作成したスクリプトを実行します。
- スクリプトを更新し、フォルダーから既存のモジュールにいくつかのインポートを追加して、
Modules
適切に実行します。理想的には、スクリプトには定型コードが含まれているとしても最小限のものを含めます。 - 以前のマシンに戻り、Dropbox が同期するのを待って、更新されたスクリプトをすぐに実行します。
私はこれを達成する方法について確固たる考えを持っていません__init__
.単純化する代わりに、以前に述べたいくつかの試み(ファイルと*.pthファイルを使用)は、すべてをより複雑にしました. しかし、これは非常に自然で明白なことであり、初心者に広く知られている何かを見落としているだけだと思います.
どんな助けでも大歓迎です、読んでくれてありがとう!
編集:ほぼ同じ問題(受け入れられた回答なし)に関する興味深い、より詳細な質問は次のとおりです。