2016-08-03 12 views
6

以前はPython 2.6を実行していたSLES 11ボックスにPython 2.7をインストールしました。これを行うには、スクリプトdescribed in this postを使用し、それをrootユーザーとして実行してください。すべてがうまくいったが、それが行われたとき、私はいくつかの問題を発見:SLES 11のすべてのユーザー用にPython 2.7をインストール

  1. ませシンボリックリンクが作成されていないとパスが私は手動で/opt/python2.7/bin
  2. すべてが実行される新しいインストールbinディレクトリにリンクするパスを更新する必要がありました更新されませんがPythonシェルが動いているにもかかわらず、rootから通常のユーザに切り替えるまでは良いですが、PyYAMLのような私がインストールしたモジュールはありません。 Pythonをルートとして実行すると、これらは正常です。
  3. 通常のユーザーであれば、pip、easy_install、wheelを実行することはできません。ピップのために私は得るImportError: No module named pkg_resources

P.S. official forumから応答なし:@userの提案に続いて、私はこの問題に

export PYTHONPATH=$PYTHONPATH:/opt/python2.7/lib/python27.zip:/opt/python2.7/lib/python2.7:/opt/python2.7/lib/python2.7/plat-linux2:/opt/python2.7/lib/python2.7/lib-tk:/opt/python2.7/lib/python2.7/lib-old:/opt/python2.7/lib/python2.7/lib-dynload:/opt/python2.7/lib/python2.7/site-packages:/opt/python2.7/lib/python2.7/site-packages/PyYAML-3.11-py2.7-linux-x86_64.egg:/opt/python2.7/lib/python2.7/site-packages/pexpect-4.2.0-py2.7.egg:/opt/python2.7/lib/python2.7/site-packages/ptyprocess-0.5.1-py2.7.egg 

答えて

1

信頼できる/公式ソースを修正していなかった.bashrcにrootユーザのsys.pathから取った次のパスを追加してみました。あなたが言及したSOリンクは別として、Installing Python 2.7 on SLES 11に記載されている方法を説明するhttps://unix.stackexchange.com/questions/7644/how-to-do-a-binary-install-of-python-2-7-on-suse-linux-enterprise-server-11もあります(それは公式ではありません);;-)

あなたの問題について:2と3。 sys.pathで不足している要素によって引き起こされる可能性があります。これをテストする

、タイプ

import sys; sys.path 

ユーザーとルートのpythonでとの違いを確認するの両方。これらは統合する必要があります。最初にPYTHONPATHを試してみてください。ただし、there are different methods how to adjust sys.pathに注意してください。

通常の(デーモンではない)ユーザーに対してこれを修正する必要がある場合は、システム全体のbashプロファイルを調整するのが簡単な方法です。

+0

実際、すべての「egg」は通常のユーザーsys.pathにはありません。あなたの返事をありがとう私は恩恵が請求されないことを恐れていた:) – Bostone

+0

@Bostone:それは私の賞金の一つに一度起こっていた、それは失望感だった:)。それは十分にあなたを助けましたか、それともさらに助けが必要ですか? –

+0

私はそれを決定しています;) – Bostone

関連する問題