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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Python

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

Q&A

解決済

3回答

4534閲覧

pyenvとipythonについて

gik

総合スコア152

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2016/07/30 15:49

編集2016/08/02 17:07

cent os7でpyenvを使い3.5.1と2.7.5を両方つかいたいです
どのようにしたらpython2.7.5にパッケージを入れて、できるようになるのでしょうか?
ここを見て行いました
http://pppurple.hatenablog.com/entry/2016/01/24/213645
足りない部分などありましたら、掲載します。
ipythonだけで2.7.5でできるようにしたいです。
よろしくお願いします。

3.5.1は
python --version
Python 3.5.1
pip freeze
cycler==0.10.0
matplotlib==1.5.1
numpy==1.11.1
pandas==0.18.1
pyparsing==2.1.5
python-dateutil==2.5.3
pytz==2016.6.1
scikit-learn==0.17.1
scipy==0.18.0
six==1.10.0

で2.7.5は
pyenv versions

  • system
    • 2.7.5 (set by /root/.pyenv/version)
  • 3.5.1

pip install --upgrade pip
Requirement already up-to-date: pip in ./.pyenv/versions/2.7.5/lib/python2.7/site-packages

pip freeze
backports-abc==0.4
backports.shutil-get-terminal-size==1.0.0
backports.ssl-match-hostname==3.5.0.1
certifi==2016.2.28
configparser==3.5.0
cycler==0.10.0
Cython==0.24.1
decorator==4.0.10
entrypoints==0.2.2
functools32==3.2.3.post2
ipykernel==4.3.1
ipython==5.0.0
ipython-genutils==0.1.0
ipywidgets==5.2.2
Jinja2==2.8
jsonschema==2.5.1
jupyter==1.0.0
jupyter-client==4.3.0
jupyter-console==5.0.0
jupyter-core==4.1.0
MarkupSafe==0.23
matplotlib==2.0.0b3
mistune==0.7.3
nbconvert==4.2.0
nbformat==4.0.1
notebook==4.2.1
numpy==1.11.1
pandas==0.18.1
pathlib2==2.1.0
pexpect==4.2.0
pickleshare==0.7.3
prompt-toolkit==1.0.3
ptyprocess==0.5.1
pydot==1.2.2
Pygments==2.1.3
pyparsing==2.1.5
python-dateutil==2.5.3
pytz==2016.6.1
pyzmq==15.3.0
qtconsole==4.2.1
scikit-learn==0.17.1
scipy==0.18.0
simplegeneric==0.8.1
singledispatch==3.4.0.3
six==1.10.0
subprocess32==3.2.7
terminado==0.6
tornado==4.4.1
traitlets==4.2.2
wcwidth==0.1.7
widgetsnbextension==1.2.6


今2.7.5でこれを試しにうごかしたのですが、

import numpy as np import matplotlib.pyplot as plt import pandas as pd from pandas import Series, DataFrame from numpy.random import normal N=10 M=[0,1,3,9] def create_dataset(num): dataset = DataFrame(columns=['x','y']) for i in range(num): x = float(i)/float(num-1) y = np.sin(2*np.pi*x) + normal(scale=0.3) dataset = dataset.append(Series([x,y], index=['x','y']), ignore_index=True) return dataset def rms_error(dataset, f): err = 0.0 for index, line in dataset.iterrows(): x, y = line.x, line.y err += 0.5 * (y - f(x))**2 return np.sqrt(2 * err / len(dataset)) def resolve(dataset, m): t = dataset.y phi = DataFrame() for i in range(0,m+1): p = dataset.x**i p.name="x**%d" % i phi = pd.concat([phi,p], axis=1) tmp = np.linalg.inv(np.dot(phi.T, phi)) ws = np.dot(np.dot(tmp, phi.T), t) def f(x): y = 0 for i, w in enumerate(ws): y += w * (x ** i) return y return (f, ws) # Main if __name__ == '__main__': train_set = create_dataset(N) test_set = create_dataset(N) df_ws = DataFrame() fig = plt.figure() for c, m in enumerate(M): f, ws = resolve(train_set, m) df_ws = df_ws.append(Series(ws,name="M=%d" % m)) subplot = fig.add_subplot(2,2,c+1) subplot.set_xlim(-0.05,1.05) subplot.set_ylim(-1.5,1.5) subplot.set_title("M=%d" % m) subplot.scatter(train_set.x, train_set.y, marker='o', color='blue') linex = np.linspace(0,1,101) liney = np.sin(2*np.pi*linex) subplot.plot(linex, liney, color='green', linestyle='--') linex = np.linspace(0,1,101) liney = f(linex) label = "E(RMS)=%.2f" % rms_error(train_set, f) subplot.plot(linex, liney, color='red', label=label) subplot.legend(loc=1) print "Table of the coefficients" print df_ws.transpose() fig.show() df = DataFrame(columns=['Training set','Test set']) for m in range(0,10): # 多項式の次数 f, ws = resolve(train_set, m) train_error = rms_error(train_set, f) test_error = rms_error(test_set, f) df = df.append( Series([train_error, test_error], index=['Training set','Test set']), ignore_index=True) df.plot(title='RMS Error', style=['-','--'], grid=True, ylim=(0,0.9)) plt.show()

以下のようなエラーがでます。

ImportError Traceback (most recent call last) /root/ml4se/scripts/02-square_error.py in <module>() 7 8 import numpy as np ----> 9 import matplotlib.pyplot as plt 10 import pandas as pd 11 from pandas import Series, DataFrame /root/.local/lib/python2.7/site-packages/matplotlib/pyplot.py in <module>() 112 113 from matplotlib.backends import pylab_setup --> 114 _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() 115 116 _IP_REGISTERED = None /root/.local/lib/python2.7/site-packages/matplotlib/backends/__init__.pyc in pylab_setup() 30 # imports. 0 means only perform absolute imports. 31 backend_mod = __import__(backend_name, ---> 32 globals(),locals(),[backend_name],0) 33 34 # Things we pull in from all backends /root/.local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py in <module>() 4 5 import six ----> 6 from six.moves import tkinter as Tk 7 from six.moves import tkinter_filedialog as FileDialog 8 /root/.local/lib/python2.7/site-packages/six.pyc in load_module(self, fullname) 201 mod = self.__get_module(fullname) 202 if isinstance(mod, MovedModule): --> 203 mod = mod._resolve() 204 else: 205 mod.__loader__ = self /root/.local/lib/python2.7/site-packages/six.pyc in _resolve(self) 113 114 def _resolve(self): --> 115 return _import_module(self.mod) 116 117 def __getattr__(self, attr): /root/.local/lib/python2.7/site-packages/six.pyc in _import_module(name) 80 def _import_module(name): 81 """Import module, returning the module after the last dot.""" ---> 82 __import__(name) 83 return sys.modules[name] 84 /root/.pyenv/versions/2.7.5/lib/python2.7/lib-tk/Tkinter.py in <module>() 37 # Attempt to configure Tcl/Tk without requiring PATH 38 import FixTk ---> 39 import _tkinter # If this fails your Python may not be configured for Tk 40 tkinter = _tkinter # b/w compat for export 41 TclError = _tkinter.TclError ImportError: No module named _tkinter

tkinterに関しては

yum -y install tkinter 読み込んだプラグイン:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.iij.ad.jp * epel: ftp.riken.jp * extras: ftp.iij.ad.jp * updates: ftp.iij.ad.jp パッケージ tkinter-2.7.5-34.el7.x86_64 はインストール済みか最新バージョンです何もしません

yum install tk tcl tk-devel
yum install openssl openssl-devel
yum search tkinter
yum install python2-tktable.x86_64

行ったのですがまた出ました。

後matplotlib.pylotで

import matplotlib.pylot --------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-5-ac86791859c1> in <module>() ----> 1 import matplotlib.pylot ImportError: No module named pylot

import matplotlibではエラーはでません。

もしかしてmatplotlibのせいですか?
なにがいけないのでしょうか?
ほかにもしこういう方法でpython2.7.5と3.5.1で動かす方法も
あれば教えてください

もう一度 pyenv uninstall 2.7.5
して再度インストールしたほうがいいのでしょうか?

あと間違えてyum install ipythonとうってしまいました。
大丈夫でしょうか?
助けてください。よろしくお願いします。

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

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

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

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

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

guest

回答3

0

VMですか?

作り直した方がいい気がします

where や which でどこにインストールしている確認して、削除後 python3としてインストールするといいかもしれません

python 2削除するとyamが壊れるのでお気をつけください

投稿2016/08/02 10:21

Kentaro0919

総合スコア258

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

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

gik

2016/08/02 12:13

cent os7単体です。 自宅サーバーでcent os7でインストールしています python3は大丈夫なんですが、python2.7.5のほうがうごきません。 作りなおしてみます。
gik

2016/08/02 17:05

あと、ひとつお願いがあるんですが、できればpyenvを使い3.5.1と2.7.5 入れて上記のソースコードうごくか確認してもらうこちは可能でしょうか? 前2.7.5で動いていたので、もし別の人で動いたなら自分の環境の設定の仕方 がよくなかったとわかるんで。
gik

2016/08/03 10:25

解決しました。ありがとうございました
guest

0

ベストアンサー

状況としてはこれに近いでしょうか
https://github.com/pypa/pip/issues/3764

ハイフンで始まるパッケージ(名前付けとしては不適切)に関してpipがうまく無視できていないような状況の様です。
pipのバージョンが8.1.2以下ならアップグレードしてみる、または

pip uninstall _ipap11helper

してみてはどうでしょう。

※ パッケージ名は-ipap11helperですが、githubで例示されているのはアンダースコアなのでそのまま書いています。


import pandasのエラーについて

今 CentOS7(ほとんど空のもの)にpyenvからpython 2.7.5や提示されたfreezeの内容のものをいれたりしてみました(3.5.1の方は試していません)。
それで気になったんですが、ipythonが pip freezeの結果に無い様に思います。
ちなみに pipは8.1.2で _ipap11helperエラーもでていません(この辺は gikさんの環境では3.5.1の作業の影響がでていたのかもしれませんがわかりません)。

以下がインストール作業のコマンド履歴です(検証目的だったのでVMのスナップショットとってからrootで実施してますが、実際は一般ユーザーでやった方が良いでしょう。必要に応じてsudoを付けてください)。

cd /tmp yum -y install git yum -y groupinstall "Development Tools" yum -y install readline-devel zlib-devel bzip2-devel sqlite-devel openssl-devel git clone https://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(pyenv init -)"' >> ~/.bash_profile vim ~/.bash_profile source ~/.bash_profile exec $SHELL -l pyenv versions pyenv install 2.7.5 pyenv global 2.7.5 python -V pyenv versions yum -y install tkinter vim requirements.txt pip install -U -r requirements.txt python >>> from six.moves import tkinter as Tk >>> exit() python >>> import pandas >>> exit()

requirements.txt

cycler==0.10.0 functools32==3.2.3.post2 matplotlib==2.0.0b3 numpy==1.11.1 pandas==0.18.1 pyparsing==2.1.5 python-dateutil==2.5.3 pytz==2016.6.1 scikit-learn==0.17.1 scipy==0.18.0 six==1.10.0 subprocess32==3.2.7

ipythonでも試してみました。

$ pip install ipython $ ipython Python 2.7.5 (default, Jul 31 2016, 20:23:56) Type "copyright", "credits" or "license" for more information. IPython 5.0.0 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In [1]: import pandas In [2]: exit

参考にしてみてください。

投稿2016/07/30 21:21

編集2016/07/31 11:56
flied_onion

総合スコア2604

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

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

gik

2016/07/31 07:33 編集

pip uninstall _ipap11helper をおこったところ Invalid requirement: '_ipap11helper' Traceback (most recent call last): File "/root/.pyenv/versions/2.7.5/lib/python2.7/site-packages/pip/req/req_install.py", line 78, in __init__ req = Requirement(req) File "/root/.pyenv/versions/2.7.5/lib/python2.7/site-packages/pip/_vendor/packaging/requirements.py", line 96, in __init__ requirement_string[e.loc:e.loc + 8])) InvalidRequirement: Invalid requirement, parse error at "'_ipap11h'" 上記で記載していますが pyenvを使って2.7.5で動かしたいのですが、うごきません。 よろしくお願いします
flied_onion

2016/07/31 08:15

追加分見る限り、最初のpip freezeの問題はpipのアップグレードによって解決して、別のエラーがでているようです。`ImportError: No module named Tkinter`とでてますのでTkinterをインストールすればよいのでは。
gik

2016/07/31 09:09 編集

上記に記載しましたが Tkinterのエラーはでなくなりました。ありがとうございます。 しかし、今度は ImportError Traceback (most recent call last) /root/setup/ml4se/scripts/02-square_error.py in <module>() 8 import numpy as np 9 import matplotlib.pyplot as plt ---> 10 import pandas as pd 11 from pandas import Series, DataFrame 12 ImportError: No module named pandas In [4]: No module named pandas ...: exit File "<ipython-input-4-442cc5665745>", line 1 No module named pandas ^ SyntaxError: invalid syntax のエラーがでてうごきません。 すいません。教えてください
flied_onion

2016/07/31 09:19

シェルで、pythonを起動した直後に >>> import panda とした場合もNo module named pandas になりますか? あと質問文のコードや、シェルの結果、エラーは、三連バッククォート( ``` )で括った方が見やすいと思います。
gik

2016/07/31 11:10 編集

import pandasをおこないました In [2]: import panda ImportError Traceback (most recent call last) <ipython-input-2-908607987b94> in <module>() ----> 1 import panda ImportError: No module named panda のエラーがでました
flied_onion

2016/07/31 11:42

ipythonではなくて、pythonの方でimport pandasは失敗しますか?(さっきのコマンドもpandaではなく、pandasでしたすいません。) 一応今CentOS7にpyenvから2.7.5入れて同じパッケージ(表示してくれたfreezeの結果)を入れて、pythonから import pandasするのはうまくいきました。
flied_onion

2016/07/31 11:58

回答に私の作業を追記してみました。pythonコマンドからもpandasが参照できていないならちょっとわかりません(たしかにpip freezeで出ているのに不思議です)。 もし3.5.1の方のpip freezeを提示してくれればそれも試すことはできますが、再現するかはなんとも言えません(あと、すぐには対応できないかも)。
gik

2016/07/31 12:01 編集

pythonから import pandasするのはうまくいきました。 エラーはでませんでした ipythonでは無理でしょうか?
flied_onion

2016/07/31 12:11

回答の追記にも書きしましたが、pyenvのpython2.7.5にipythonをインストールしていないからじゃないかと思います(想像ですが、現状は違う環境のipythonが動いてしまっているのかもしれません。)
gik

2016/07/31 13:11

どうしたら確認できるのでしょうか? pyenvのpython2.7.5の今は言っているものは書きました。 よろしくお願いします
flied_onion

2016/07/31 13:18

iPythonのほう、 import panda になっていますけど、 import pandas でも試しましたか?
gik

2016/08/01 11:03 編集

import pandasでのエラーはでなくなりました。 ありがとうございます。 しかし ImportError Traceback (most recent call last) /root/ml4se/scripts/02-square_error.py in <module>() 7 8 import numpy as np ----> 9 import matplotlib.pyplot as plt 10 import pandas as pd 11 from pandas import Series, DataFrame /root/.local/lib/python2.7/site-packages/matplotlib/pyplot.py in <module>() 112 113 from matplotlib.backends import pylab_setup --> 114 _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() 115 116 _IP_REGISTERED = None /root/.local/lib/python2.7/site-packages/matplotlib/backends/__init__.pyc in pylab_setup() 30 # imports. 0 means only perform absolute imports. 31 backend_mod = __import__(backend_name, ---> 32 globals(),locals(),[backend_name],0) 33 34 # Things we pull in from all backends /root/.local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py in <module>() 4 5 import six ----> 6 from six.moves import tkinter as Tk 7 from six.moves import tkinter_filedialog as FileDialog 8 /root/.local/lib/python2.7/site-packages/six.pyc in load_module(self, fullname) 201 mod = self.__get_module(fullname) 202 if isinstance(mod, MovedModule): --> 203 mod = mod._resolve() 204 else: 205 mod.__loader__ = self /root/.local/lib/python2.7/site-packages/six.pyc in _resolve(self) 113 114 def _resolve(self): --> 115 return _import_module(self.mod) 116 117 def __getattr__(self, attr): /root/.local/lib/python2.7/site-packages/six.pyc in _import_module(name) 80 def _import_module(name): 81 """Import module, returning the module after the last dot.""" ---> 82 __import__(name) 83 return sys.modules[name] 84 /root/.pyenv/versions/2.7.5/lib/python2.7/lib-tk/Tkinter.py in <module>() 37 # Attempt to configure Tcl/Tk without requiring PATH 38 import FixTk ---> 39 import _tkinter # If this fails your Python may not be configured for Tk 40 tkinter = _tkinter # b/w compat for export 41 TclError = _tkinter.TclError ImportError: No module named _tkinter tkinterに関しては yum install tk tcl tk-devel yum install openssl openssl-devel yum search tkinter yum install python2-tktable.x86_64 すいません。今まで気が付かなったのですが、申し訳なかったのですが 自分が動かしたいソースコードを上記に載せました。 これうごかせますでしょうか? もし動かせたら、私のpython2.7.5の入れ方が悪く再度入れなおし したいと思います。 よろしくお願いします。
flied_onion

2016/08/02 11:20

「しかし」何をしたらそのエラーが出たんでしょうか。あまり細かく質問を投稿するのも良くはありませんが、別の質問として仕切り直してはどうでしょう。 ご自分でも今の状況を整理してみてください。
gik

2016/08/02 12:12

一度アンインストールしてやり直してみます。 ありがとうございます。
gik

2016/08/02 17:07

あと、ひとつお願いがあるんですが、できればpyenvを使い2.7.5入れているとおしゃってましたが上記のソースコードうごくか確認してもらうこちは可能でしょうか? 前2.7.5で動いていたので、もし別の人で動いたなら自分の環境の設定の仕方 がよくなかったとわかるんで。すいません。よろしくお願いします。
flied_onion

2016/08/02 23:34

わかりました。今夜時間がとれたらやってみますね。
gik

2016/08/03 10:32 編集

解決しました。 動きました。本当にありがとうございました。 matplotlib==2.0.0b3 がよくなかったみたいです。 バージョンを変えたら、動きました。
flied_onion

2016/08/03 13:04

動いたようで良かったです。 私の環境でも動きました。 matplotlibは2.0.0b3ですが、Font関連の警告はでますね。 警告と言っても「matplotlibはfc-listでFontをキャッシュするので少し時間がかかります」といった内容のもので、無害そうですが。 一応 pip freezeを貼っておきます [root@localhost tmp]# pip freeze backports.shutil-get-terminal-size==1.0.0 cycler==0.10.0 decorator==4.0.10 functools32==3.2.3.post2 ipython==5.0.0 ipython-genutils==0.1.0 matplotlib==2.0.0b3 numpy==1.11.1 pandas==0.18.1 pathlib2==2.1.0 pexpect==4.2.0 pickleshare==0.7.3 prompt-toolkit==1.0.3 ptyprocess==0.5.1 Pygments==2.1.3 pyparsing==2.1.5 python-dateutil==2.5.3 pytz==2016.6.1 scikit-learn==0.17.1 scipy==0.18.0 simplegeneric==0.8.1 six==1.10.0 subprocess32==3.2.7 traitlets==4.2.2 wcwidth==0.1.7
gik

2016/08/03 15:22 編集

私はmatplotlib1.5.1に変え、あとpythonを2.7.10に変えて動きました。 実行していただきありがとうございます。 またいろいろアドバイス本当にありがとうございました。
guest

0

一度アンインストールして作り直しました。
できました。ありがとうございました。
あとpythonのバージョンを2.7.10にし、
matplotlib、numpy、pandas、scikit-learn、scipyをすべて一回
アンインストールし、再度インストールし直しました。
matplotlibのバージョンを変更しました。

投稿2016/08/02 18:34

編集2016/08/03 10:28
gik

総合スコア152

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問