質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3363閲覧

rootでのpythonとsudo pythonの参照先が異なる問題

kzmu

総合スコア17

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/12/06 11:41

Vagrant環境で、CentOs6.7にてPythonを使用しています。
Pythonの3.6.3を使いたいのですが、
sudo python ~ や sudo pip ~ を打つと、Python2.6.6 をみてしまい、対応方法がわからず困っております。

[root@localhost ~]# python -V Python 3.6.3 [root@localhost ~]# sudo python -V Python 2.6.6 [root@localhost ~]# which python /usr/local/bin/python [root@localhost ~]# sudo which python /usr/bin/python

こちらお分かりの方、どのように対応すれば良いかご教示いただけますでしょうか?

なお、試したこととしましては、
rootユーザーにて、

.bashrcに以下を記載(記載後に、 source .bashrcを実行)

export PYTHONPATH=/usr/local/bin/python

/etc/sudoersに

Defaults env_keep += "PYTHONPATH"

を記載し一度ログアウトして再ログインしてみましたが状況は変わりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

rootユーザーで環境変数 PATH/usr/local/bin がないのが原因でしょう。

以下は間違いです。

export PYTHONPATH=/usr/local/bin/python

PYTHONPATHはPythonライブラリのパス指定であって、PYTHONのバージョンとは関係ありません。

とはいえ、rootユーザーで /usr/local/bin にパスを通すのは、別の問題を引き起こすことにもなりかねないので、rootユーザーで /usr/local/bin/python を実行したい場合は、フルパスで実行するのが良さそうです。

sudo /usr/local/bin/python foo.py

投稿2017/12/06 12:17

shimizukawa

総合スコア1847

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kzmu

2017/12/06 12:38

なるほど、ご指摘ありがとうございます。確かにrootユーザーで/usr/local/binに通すのは不安ですね。 意図としては、デプロイ時に非rootユーザーでsudo pip install ~ をしたかったのですが、sudo /usr/local/bin/pip install ~ での対応が望ましそうですね。 ご回答ありがとうございました。
guest

0

Defaults env_keep += "PATH"では?

投稿2017/12/06 11:57

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kzmu

2017/12/06 12:17

回答ありがとうございます。こちら試してみました(設定後reboot)が、状況は変わりませんでした。 具体的には、以下のように記載しております。 ``` Defaults env_reset Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS" Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE" Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES" Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE" Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY" Defaults env_keep += "PATH" ``` もし、何かお気付きでしたら、ご教示くださいませ。
otn

2017/12/06 12:23

そうですか。では、元に戻して置いて下さい。
kzmu

2017/12/06 12:36

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問