2016-04-19 11 views
5

私はにカスタムディレクトリを追加しようとしていましたが、この投稿のアドバイスに従ってください。Permanently add a directory to PYTHONPATH。私はMac上でbashを使用しています。これは私がやったことです:PYTHONPATHにカスタムディレクトリを追加する

  1. open ~/.bash_profile
  2. export PYTHONPATH="${PYTHONPATH}:/Users/Zhengnan/Library/Python/2.7/lib/python/site-packages"
  3. source ~/.bash_profile

を保存二つの問題がありました:

  1. 私はPythonのIDE内sys.pathを走りました、意図した方向はまだ現れなかった。
  2. 私はターミナルでPythonを起動し、そこにsys.pathを実行しましたが、ディレクトリが表示されましたが、他のディレクトリはすべて前の手順で得られたものと一致しませんでした。

具体的には、これはIDE内でsys.pathを実行したものです。意図したディレクトリが見つかりませんでした。

のsys.path [ ''、 '/Applications/Spyder-Py2.app/Contents/Resources' 「/Applications/Spyder-Py2.app/Contents/Resources/lib /python27.zip '、 ' /Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7 '、 ' /Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/plat -darwin '、 ' /Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/plat-mac '、 ' /Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/plat-mac/lib-scriptpackages '、 '/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/lib-tk'、 '/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/lib-old' 、 '/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/lib-dynload'、 '/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/site- packages.zip '、 ' /Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/site-packages '、 ' /Applications/Spyder-Py2.app/Contents/Resources/lib/python2。 7/IPython /拡張、 '/Users/Zhengnan/.ipython']

アンこれは私がTerminalからsys.pathを実行して得たものです。目的のディレクトリは、リストの3番目の要素です。

のsys.path [ ''、 '/ユーザ/ Zhengnan'、 '/Users/Zhengnan/Library/Python/2.7/lib/python/site-packages'、「/システム/ライブラリ/フレームワーク/ Python.framework/Versions/2.7/lib/python27.zip '、' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 '、'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin '、' /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac '、'/System /ライブラリ/フレームワーク/ Python.framework /バージョン/ 2.7/lib/python2.7/plat-mac/lib-scriptpackages '、' /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python '、 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib- tk '、' /System/Library/Frameworks/Python.framework/Versions/2。7/lib/python2.7/lib-old '、/システム/ライブラリ/フレームワーク/ Python。フレームワーク/バージョン/ 2.7 /エクストラ/ libに/パイソン/ PyObjC ']

は私がPYTHONPATHにこのカスタムディレクトリを追加したい理由があることを言及する必要があり、そのたびに私pip installパッケージ、それを/Users/Zhengnan/Library/Python/2.7/lib/python/site-packagesにインストールされ、スクリプトを実行するたびにsys.path.appendになりたくありません。お知らせ下さい。ありがとう。

+0

参照http://stackoverflow.com/questions/135688/setting-environment-variables-in-os-x – cdarke

答えて

2

ここにはたくさんのことがあります。

基本的にIDEで使用しているPythonは、端末で使用しているPythonではありません。このため、pip installは物事を正しい場所に置かないのです。

最も簡単な解決策は、$PATH環境変数を変更して、端末にpythonと入力すると、IDEが使用しているのと同じバージョンを取得できるようにすることです。 pipが同じ場所で利用可能であると仮定すると、あなたが今できるはずです

export PATH="/Applications/Spyder-Py2.app/Contents/Resources/bin:$PATH" 

:私の推測では、あなたのIDEのpythonがあなたの.bash_profileを設定あなたのPYTHONPATHを取り除くと追加になるだろう。その場合には/Applications/Spyder-Py2.app/Contents/Resources/bin/pythonのようなもの、ということです〜pip installPYTHONPATHで悩む必要はありません。

もう1つの問題は、シェルで設定された環境変数(たとえば、.bash_profile)がアプリケーションに表示される環境に影響を与えないことです。 可能 OS Xアプリケーション(例えば、this question参照)に表示される環境変数を設定することは難しいですが、私はそれを助言しません。

別の解決方法がある場合は、IDEに使用する必要があることをIDEに伝えて、それを端末から見えるところに向けます。

関連する問題