0

Windows用に作成されたGUIプログラムのいくつかをUbuntuソフトウェアセンターに持ち込みたいと思います。私はいくつかの外部コマンドラインツールを使用しています。

os.system(cmd)

いいえ、Linux(Ubuntu)でこれを行う方法を知りたいです。どの対応するファイルを使用する必要がありますか?Windowsでは、ツールはプログラムのフォルダからアクセスできますが、インストールされていません。Linuxでも同じように機能しますか?

私が必要とするツールはすべてbioinformatic、 primer3 、blastbowtieです

どんな助けでも大歓迎です!

4

1 に答える 1

2

Linuxでは、通常、システムパッケージマネージャーを使用してインストールできるようにアプリケーションをパッケージ化します(たとえば、 UbuntuやRedHat.deb などのDebianベースのディストリビューション用のファイル)。.rpmこれを実行する理由の1つ(多くのうち)は、依存関係の管理です。パッケージ内のパッケージマネージャーに、依存している他のパッケージを通知して、そうでない場合でもインストールできるようにすることができます。setuptoolsを使用してこれを行うことができます。これには多くのリソースがあります。この場合、コマンドラインツールがシステム全体にインストールされ、アプリケーションから呼び出すことができます。

これが不可能な場合は、必要なツールのソースコードを含めて、それらをコンパイルする方法をユーザーに指示することもできます(必要に応じて、アプリケーションディレクトリ内に)。最新のディストリビューションでは、これはかなり苦痛のないプロセスですが、正確にはベストプラクティスではありません。


別の注意:os.systemブロッキングです。新しいプロセスを生成し、終了するのを待ちます。stdoutまたはstderrの出力を簡単に取得したり、操作したりすることはできません。subprocessサブプロセスモジュールに単純化された(おそらく)より強力なインターフェイスを提供するモジュール( Pythonの標準ライブラリの一部)またはenvoy(サードパーティモジュール)を調べる必要があります。

コマンドラインツールを「自動化」したい場合は、作業pexpectがはるかに楽になります。

于 2012-07-26T18:26:10.783 に答える