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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

4462閲覧

yumがPython3として実行されinvalid syntaxのエラーが出てしまうのでPython2として実行したい。

chacaco0216

総合スコア11

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/01/27 09:27

前提・実現したいこと

OS/バージョン: Centos7.6
Python旧バージョン:Python2.7.14
Python最新バージョン: Python3.7.1
Linux歴: 2ヵ月
Python歴: 1ヵ月

Webで調べるとPythonのバージョンをアップした際に、yumを書き換えないと
Python3として実行してしまう為、Python2で書かれているyumは、書き換えが必要だとありました。
そこでいくつか実施したのですがエラーが変わりませんでした。
また、バージョンアップ後yumを使用した記憶がありましたが、その際は問題無かったと記憶しています。
何かの拍子で使用できなくなったような気がしています・・。

現在yumが使用出来なくなってしまい困っています・・。
色々やってみましたが、経験が浅く他に出来る事が思い浮かびません。ご助言を頂きたく思います。

発生している問題・エラーメッセージ

$ yum install xxxを実行すると以下のエラーメッセージが返ってきます。
Webで調べると多くの同じ症状の人は KeyboardInterruptでエラーなようですが、私は少し違うようです。

File "/root/.pyenv/versions/3.7.1/lib/python3.7/site.py", line 177 file=sys.stderr) ^ SyntaxError: invalid syntax

試したこと

  1. /usr/bin/yum内の以下の通り書き換えてyumを実行しました。

(元々)#!/usr/bin/python
(実施ケース1)#!/usr/bin/python2
(実施ケース2)#!/usr/bin/python2.7
(実施ケース3)#!/usr/bin/python2.7.14

  1. 別件でcrontabがモジュールを認識してくれなかった為、PYTHONPATHを以下の通りにしていたので、

書き換えて実行してみました。

(元々)
PYTHONPATH="/root/.pyenv/versions/3.7.1/lib/python37.zip:/root/.pyenv/versions/3.7.1/lib/python3.7:/root/.pyenv/versions/3.7.1/lib/python3.7/lib-dynload:/root/.pyenv/versions/3.7.1/lib/python3.7/site-packages:"

(実施ケース1)
PYTHONPATH="/usr/bin/python2.7:/root/.pyenv/versions/3.7.1/lib/python37.zip:/root/.pyenv/versions/3.7.1/lib/python3.7:/root/.pyenv/versions/3.7.1/lib/python3.7/lib-dynload:/root/.pyenv/versions/3.7.1/lib/python3.7/site-packages:"

(実施ケース2)
PYTHONPATH="/usr/bin/python2.7:/root/.pyenv/versions/3.7.1/lib/python37.zip:/root/.pyenv/versions/3.7.1/lib/python3.7:/root/.pyenv/versions/3.7.1/lib/python3.7/lib-dynload:/root/.pyenv/versions/3.7.1/lib/python3.7/site-packages:/usr/bin/python2.7:"

(実施ケース3)
PYTHONPATH="/root/.pyenv/shims:/root/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"

  1. シンボリックリンクを再実施してみました。

(実施ケース1)
$unlink /usr/bin/python
$ln -s /usr/bin/python2.7 /usr/bin/python

※ただ、コマンドでPythonのバージョンを調べると、いずれも最新バージョンが返ってきてしまいます。

$python -V
Python 3.7.1

$python3 -V
Python 3.7.1

  1. PyenvでPython2.7.14の再インストールしました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

hayataka2049

2019/01/27 09:33

エラーを省略している場合は、省略しないで全文を記載してみてください。
chacaco0216

2019/01/27 09:36

さっそくご回答ありがとうございます、エラーはそちらで全文になります。。
hayataka2049

2019/01/27 09:37

yum install xxxのあとにいきなり File "/root/.pyenv/versions/3.7.1/lib/python3.7/site.py", line 177 から出てきますか?
chacaco0216

2019/01/27 09:42

そうですね、、いきなりそのエラーから出てきます。 再度実行してみた結果を全文を以下に記載しました。 [root@XXXXX XXXX]# yum install python File "/root/.pyenv/versions/3.7.1/lib/python3.7/site.py", line 177 file=sys.stderr) ^ SyntaxError: invalid syntax [root@XXXXX XXXX]#
hayataka2049

2019/01/27 12:10

とりあえずpyenvのpythonで実行されているようですが、deactivateは試してみましたか?
chacaco0216

2019/01/28 18:59

deactiveを試してみましたが、そもそもdeactivateする対象が無いとエラーが出ました。 Python3.7.1をインストール時はよく分かっておらず、仮想環境?は使用せずローカルに インストールしていた為のようです。 その後、環境変数の設定がおかしいのかと思いbash_profileをいじくってたのですが 色々試している際にrmで/.bash_profileを削除してしまった上にターミナルを閉じてしまった為、、 復元もできずosから再インストールしなおしました。(バリバリ初心者で恐れいります) .bash_profileを削除後、一応yumを実行してみると正常に動いたので原因はここにあったようです・・ (検討違いかもしれません) 色々とご助言下さりありがとうございました。勉強になりました。
guest

回答1

0

自己解決

bash_profileでPYTHONPATHを設定した際に、Python2系のパスを通していなかった事が原因だった可能性がありました。(bash_profileを消してしまったので可能性があったと推測までとなりますが)
bash_profile削除後にターミナルを閉じて再ログイン後はPython2系で動くコマンドは通りました。

※私が間違えてやったような全てのディレクトリ配下のbash_profileを削除してしまうような事は十分に気を付けてください。

投稿2019/01/29 14:20

編集2019/01/29 14:23
chacaco0216

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問