Ubuntu に関連する Python の詳細

Ubuntu に関連する Python の詳細

Ubuntu 環境で Python を使用する上で、どのような経験をお持ちで、それを共有できるか知りたいです。Ubuntu で少し作業したことがありますが、Windows ではできないが Python コードやライブラリで実行できる特別なことはありますか?

私はUbuntuでのPythonの作業から学んだことや長年使ってきたことの一部を投稿しましたが、ベストプラクティスなどの意味での指示が必要かどうかはわかりません。私のやり方、改善の提案、または共有できる経験についてレビューしてコメントしていただければ幸いです。私の既存のコード概要はhttp://www.pythonsnippet.com/snippets

前もって感謝します!

答え1

何ができて何ができないかを決めるのはコンピュータです。同じハードウェア上で、人為的な障害がない限り、一方のオペレーティング システムで可能なことは、もう一方のオペレーティング システムでもすべて可能です。実際、オペレーティング システムはそれを保証するものです。Windows に Python がインストールされていれば、GNU+Linux で Python ができることはすべてできます。ほとんどすべてのアプリケーションではライブラリを使用しますが、それらのライブラリは効率化のために C などの他の言語でプログラムできます。

Windows と Ubuntu には、2 つの大きな違いがあります。1) Ubuntu には、非常に多くの言語での開発をサポートする機能が組み込まれています。このため、あらゆるものがあらゆる言語でアクセスできるように設計されているのです。良い例が Unity です。Unity では、すべてが DBus 経由で行われるため、特別なライブラリがなくても、あらゆる言語で環境を制御できます。ただし、特別なライブラリがあれば、さらに簡単になります。Windows では、アプリケーションを使用する前にすべての要件を手動でインストールする必要がありますが、その後も同じように動作します。

2) Ubuntu はフリーソフトウェアです。つまり、ライブラリは Ubuntu でのみ使用すべきだと言う動機は誰にもありません。まったく逆です。ライブラリを使用する開発者が増えるほど、そのライブラリの価値は高まります。Windows はまったく異なります。Windows は、単一の組織が所有するプロプライエタリなオペレーティング システムであるだけでなく、開発ツールもプロプライエタリで、その組織が販売しています。つまり、開発者が他のオペレーティング システムでは使用できない、または簡単に使用できないライブラリを使用してアプリケーションを作成するようにする動機が何十億もあるということです。Microsoft は変化への意欲をある程度示していますが、現状に満足するにはまだ長い道のりがあります。

まとめると、Ubuntu で開発する場合、アプリケーションはどのデスクトップでも動作します。Windows で使用する場合はインストーラーを提供する必要がありますが、そのタスクを自動化するプログラムがあります。アプリが直接システムとやり取りする必要がある場合は、コードを少し調整する必要があるかもしれませんが、大した問題ではありません。これは時間とともに改善されます。たとえば、Windows 用のインジケーター サービスはすでに存在しており、これにより、Ubuntu 用に記述された AppIndicator が、開発者の手間をかけずに Windows システム トレイ アイコンとして自動的に表示されます。これには汎用的なソリューションが必要です。アプリがプロセス間通信に DBus に依存している場合は、DBus はすでに Windows に移植されているため、これも問題なく動作します。DesktopCouch サービスなどが必要になります。これらは技術的に難しいことではありませんが、実行する必要があるだけであり、実際に実行されます。

開発者としての主なターゲットが Windows だとしても、そのソフトウェアは Ubuntu で開発すべきだと私は思います。Ubuntu は、必要なツールがすべて揃った非常に快適な環境であり、強力なコミュニティがバックアップしてくれるだけでなく、開発者としていつでも最小限の労力でオーディエンスを拡大できる自由も保証します。特に、Python と GTK3 の使用を強くお勧めします。

うわー、長くなってしまいましたね。:)

答え2

Python に関する限り、Windows 側で実行できて Linux 側で実行できないことは見たことがありません。コンパイルされたコード コンポーネントとネイティブ C API に問題がある可能性があります。それ以外は、私の経験では、ほとんど同じです。

関連情報