0

これと同様の質問が以前にもありましたが、解決策ではなく、問題の説明しか見つかりません。

私は OS X Mavericks を実行しており、Python を学習しています。Python をインストールしましたが、それが組み込まれていることをほとんど知りませんでした。

私は崇高なテキストを IDE として使用し、いくつかのライブラリ (scipy、numpy、matplotlib) をインストールしようとしました。Sublime Text では、ライブラリをインポートすると機能します。scipy をインポートして scipy.pi を完全に印刷できます。ただし、ターミナルで実行すると、それらのライブラリが見つからないと言われました。

他の人は、端末がオペレーティング システムの python を実行しており、ライブラリが見つからなかったと説明しましたが、端末で適切に実行するためにライブラリを配置する必要がある場所については説明しませんでした。

どんな助けでも大歓迎です、ありがとう

4

2 に答える 2

1

Sublime Text から何を呼び出しているかを正確に把握する必要があります。この解決策は、他の人が言っていることが真実であり、Sublime Text がシェルから呼び出しているものとは異なる別の Python インタープリターを呼び出している場合にのみ適用されます。


ステップ1

Sublime Text が何を呼び出しているかを確認するための簡単で汚い方法:

  1. Python をビルド システムにします。メニュー バーで選択: [ツール] > [ビルド システム] > [Python]
  2. 新しいファイルを作成 (cmd+n)
  3. ビルド (cmd+b)

これにより、次のようなエラー メッセージが表示されます。

/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't find '__main__' module in ''
[Finished in 0.1s with exit code 1]
[shell_cmd: python -u ""]
[dir: /Users/someuser/Downloads]
[path: /usr/bin:/bin:/usr/sbin:/sbin]

最初の行は、Sublime Text が使用している Python インタープリターへのパスを示しています。


ステップ2

次に、コマンド ラインで何を呼び出しているかを確認する必要があります。

% which python
/usr/local/bin/python

上記の情報を使用して、/usr/local/bin/python の場所を見つけることができます。

% ls -la /usr/local/bin/python
lrwxr-xr-x  1 someuser  wheel  33 Jul 29 23:14 /usr/local/bin/python@ -> ../Cellar/python/2.7.5/bin/python

2つのパスが同じである場合は、停止してください。私の解決策はあなたの状況には当てはまりません。


ステップ 3

2 つのパス異なる場合は、崇高なテキストが呼び出している python インタープリターへのパスを具体的に使用する必要があります。

% echo 'print "hello"' | /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
hello

または、単に python を使用してコマンド ラインで呼び出したい場合は、"which python" によって表示されるリンクを変更できます (例: /usr/local/bin)。

例(これをコピーして貼り付けないでください - パスがどこから来たのか、そしてその理由を理解してください):

ln -s PATH_TO_YOUR_PYTHON /usr/local/bin/python

OSX でデフォルトの Pythonを変更する方法については、「 Snow Leopard で使用される Python のバージョンを変更する方法」を参照してください。


別のこと-Sublime Textとは異なるpythonを実行したい場合は、これを見てください。

于 2013-10-27T04:46:18.687 に答える