1

リモート マシンでこの python スクリプトを実行していて、マシンに技術的にインストールされている を要求しpyfitsていますが、python はそれを見つけられません。

メソッドで、インストールされていると思われるディレクトリをパスに追加しようとしました(フォルダーにもアクセスできます)sys.path.append('folder')。しかし、それはまだ見つかりません。

説明するための思考プロセスを次に示します。

モジュールをインストールしたユーザーはすべてのソースを持っている"/otheruser/code/pyfits"ので、そのフォルダーまたは任意のフォルダーを追加してpyfits、(アクセスできる) init ファイルを追加しようとしましたが、成功しませんでした。

だから私の主な質問は次のとおりです。

モジュールを他の場所で探す必要がありますか? モジュールを --myuser として再度インストールする必要がありますか? または、サイトパッケージを台無しにする必要がありますか? もしそうなら、そこにモジュールを追加しますか?

4

1 に答える 1

0

PyFITS のドキュメントによると、実際のモジュールは最上位の PyFITS インストール ディレクトリにインストールされているか、lib/pythonまたは(インストールに使用されたフラグに応じて) その下にインストールされているようです。lib/python<version>/site-packagesしたがって、通常は次のようにします。

sys.path.append(r'/otheruser/code/pyfits/lib/python')

# Might be sys.path.append(r'/otheruser/code/pyfits/lib/python2.7/site-packages')
# or something similar

import numpy
import pyfits

追加したディレクトリとそのサブディレクトリの内容を読み取ることができれば、問題ありません。

ただし、元の質問に対するコメントで述べたように、質問を編集して、これを行うために使用している実際のコードを含めることをお勧めします。問題はそのように推測しやすいためです。

問題の原因は次のとおりです。

  1. 実際のモジュールを指していないディレクトリを sys.path に追加します。

  2. __init__.pyモジュールディレクトリにファイルがありません。

  3. フォルダの内容を表示したり、同封されたファイルを読み取ったりする権限がありません。

  4. Python の文字列処理の問題により、何らかの形でパスが台無しになります (raw モードを使用していない、バックスラッシュを含む Windows パスを使用しているときにバックスラッシュを適切にエスケープしていないなど)。

  5. インポートが発生する前に何かが sys.path を上書きしています。

  6. タイプミス。

于 2013-08-24T01:51:49.720 に答える