最近、Pythonが動作するために必要なソフトウェアをいくつかインストールしました。何らかの理由で独自のPythonバージョンをインストールし、PYTHONPATH変数を修正しました。今、numpyのようなモジュールをインポートしようとすると得ることができるのは
ImportError: No module named numpy
現在echo $PYTHONPATH
I getを実行すると、/home/astrolab/easyaccess/eups/1.2.30/python
強奪されたPythonインストールを指します。を実行して同じ結果を得ましたsudo echo $PYTHONPATH
。私が得たsys.path設定を確認しています
['', '/home/astrolab/easyaccess/eups/1.2.30/python', '/home/astrolab/easyaccess/eups/packages/Linux64/python/2.7.6+2/lib/python27.zip', '/home/astrolab/easyaccess/eups/packages/Linux64/python/2.7.6+2/lib/python2.7', '/home/astrolab/easyaccess/eups/packages/Linux64/python/2.7.6+2/lib/python2.7/plat-linux2', '/home/astrolab/easyaccess/eups/packages/Linux64/python/2.7.6+2/lib/python2.7/lib-tk', '/home/astrolab/easyaccess/eups/packages/Linux64/python/2.7.6+2/lib/python2.7/lib-old', '/home/astrolab/easyaccess/eups/packages/Linux64/python/2.7.6+2/lib/python2.7/lib-dynload', '/home/astrolab/.local/lib/python2.7/site-packages', '/home/astrolab/easyaccess/eups/packages/Linux64/python/2.7.6+2/lib/python2.7/site-packages']
しかし、私がsudo python -c "import sys; print sys.path"
走ると
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/astrolab/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7']
これは正しいパスであり、通常どおりnumpy/matplotlib/etcをインポートできます。
私の質問は:sys.path / PYTHONPATH環境変数を変更する最良の方法は何ですか? .bashrcファイルを編集し、sudoのsys.pathからパスを手動でエクスポートすることを検討しましたが、これは実際にこの問題を解決するための最良の方法ですか?また、$ PYTHONPATHをこのように編集すると、sys.pathの違いが修正されるかどうかはわかりません。
編集:私が含めることを忘れたことの1つは、もはや新しいPythonインストールのどの部分にもアクセスする必要がないということです。この問題を解決したら、新しいインストールと関連ソフトウェアを削除する予定です。
ベストアンサー1
.rcファイルに追加されたPYTHONPATH env設定を確認してコメントアウトします。これを行うには、PYTHONPATH env設定があってはなりません。つまり、システムのデフォルト値(sudo cmdを使用して確認)を意味します。パッケージのPATHカスタマイズが正しく行われた可能性があります。セッションを再開する必要があります(またはその環境変数を手動で調整する必要があります)。
swパッケージのカスタマイズを引き続き使用する必要がある場合は、それを特別なファイル/スクリプトに入れます(sw呼び出しもラップすることもできます)。これにより、環境をカスタマイズしてswを満たすことができますが、次の場合に実行します。ソフトウェアを実行する必要があるとき。