9

ここで何が問題なのかわかりません:

対話型プロンプトを使用するとき、またはコマンドラインから Python スクリプトを実行するときに、簡単にインポートできる Biopython のモジュールがいくつかあります。

問題は、同じ biopython モジュールを Web 実行可能な CGI スクリプトにインポートしようとすると、「インポート エラー」が発生することです。

: Bio という名前のモジュールはありません

ここに何かアイデアはありますか?

4

3 に答える 3

7

ここにいくつかの可能性があります:

  • Apache(Unix上)は通常、コマンドラインからpythonとは異なるユーザーとして、異なる環境で実行されます。sys.versionとを出力するだけの小さなスクリプトを作成し、sys.prefixapacheとコマンドラインを使用して結果を比較して、両方の環境で同じインストールのpythonから実行していることを確認してください。
  • Biopythonはホームディレクトリの下にインストールされていますか、それとも通常のユーザーだけが読み取ることができますか?繰り返しになりますが、apacheは通常、別のユーザーとして実行されるため、おそらくその場所にアクセスできないため、インポートできません。
  • import siteBiopythonをインポートする前に試してみてください。おそらく、apacheを実行したときに、サイトパッケージがインポートされないようになっていることが原因です。
于 2010-09-24T03:39:03.513 に答える
4

cgi スクリプトでは、インポートの前にこのパッケージへのパスを追加することができます。

sys.path.insert(0, 'path to biopython package')

Apache を使用している場合は、ディレクティブ SetEnv を使用して conf ファイルに PYTHONPATH を設定できるはずです。

SetEnv PYTHONPATH "path to biopython package"
于 2010-09-24T02:47:22.217 に答える