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

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

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

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

Q&A

解決済

3回答

985閲覧

python3について

todasan

総合スコア78

Python 3.x

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

0グッド

0クリップ

投稿2022/09/22 04:55

編集2023/01/05 06:15

Windowsからバーチャルボックスに、centos7をインストールしました。
以下のコマンドでpythonをインストールしました。

yum clean all yum -y update yum -y install gcc make unzip zlib-devel libffi-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libuuid-devel xz-devel curl -O https://www.python.org/ftp/python/3.7.14/Python-3.7.14.tgz tar xf Python-3.7.14.tgz cd Python-3.7.14 # Python3.7のビルド ./configure --enable-optimizations make # Python3.7のインストール make altinstall ln -s /usr/local/bin/python3.7 /usr/bin/python3 ln -s /usr/local/bin/pip3.7 /usr/bin/pip3

下記のようにpandasのパスを通しました。

find /usr/ -name "pandas" -type d /usr/local/lib/python3.7/site-packages/pandas echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/lib/python3.7/site-packages/pandas:/usr/local/lib/python3.7/site-packages/numpy:/usr/local/lib/python3.7/site-packages/psycopg2:/root/bin:/usr/local/lib/python3.7/site-packages/psycopg2

・pandasなどは以下のように、インストールしました。
pip install -r requirements.txt
以下のコードから[python3 database_te.py operation_1_1.ini]を実行します。
■フォルダ構成
・/home/todashinya/pyproglam
database_te.py
・/home/todashinya/pyproglam/conf
operation_1_1.ini
・/home/todashinya/pyproglam/log

・database_te.py # -*- coding: utf-8 -*- import pandas as pd import sys import os import psycopg2 from psycopg2.extras import execute_values from psycopg2.extras import DictCursor import configparser import datetime import traceback import logging cdt = datetime.datetime.now() handler = logging.FileHandler('/home/toda/log/mylog.log') logger.addHandler(handler) fmt = logging.Formatter('%(asctime)s %(message)s') handler.setFormatter(fmt) DBNAME = "db_test" HOST = "localhost" PORT = "5432" USER = "postgres" PASSWORD = "postjike" logger.debug("DB_NAME:"+str(DBNAME)) logger.debug("DB_HOST:"+str(HOST)) logger.debug("DB_PORT:"+str(PORT)) logger.debug("DB_USER:"+str(USER)) logger.debug("DB_PASSWORD:"+str(PASSWORD)) class operation: input_num = 0 add_num = 0 table_name = "" pattarn_id = 0 before_minutes = "" idf = [] adf = [] model = "" predict = "" input_tau_p = 1 input_tau_f = 1 input_threshold = 1000.0 input_threshold_tau = 1 input_cluster_num = 1 input_w = 1.0 input_lower_limit = 2 input_upper_limit = 400 input_abnormal_flag = False input_freq = "60T" input_input_feature = "offset_latest" input_type_predict = "diff" input_ns_tau_p = [1] input_n_tau_d = 1 input_n_twin_smooth_gp = 0 input_n_twin_smooth_coef = 30 input_reg_model = "MV_ReducedRankRegression_5_0.0_0.1" input_normalize_spatial_mesh = False input_rbf_params_solve = "ridge" input_rbf_params_cont_prior = False input_rbf_params_rbfloc_method = "weighted_kmeans" input_rbf_params_n_neighbors_distortion = 100 input_rbf_params_pow_distortion = 10 input_rbf_params_coeff_sigma_rbf = 0.2 input_rbf_params_gcv_mode = "diag" input_rbf_params_cc_sigma_coeff = 0.1 input_rbf_params_n_neighbors_rbf_sigmas = [15] input_rbf_params_alphas = [0.1] input_return_analytics = True input_update_learning_patterns = False def get_ini(self): try: con = configparser.ConfigParser() con.read(ifn, encoding='utf-8') self.input_num = int(con['PARAM']['input_num']) self.add_num = int(con['PARAM']['add_num']) self.return_analytics = con['PARAM']['return_analytics'] self.update_learning_patterns = con['PARAM']['update_learning_patterns'] self.table_name = con['TABLE']['table_name'] self.pattarn_id = con['TABLE']['pattarn_id'] self.before_minutes = con['TABLE']['before_minutes'] self.input_tau_p = int(con['PARAM']['tau_p']) self.input_tau_f = int(con['PARAM']['tau_f']) self.input_threshold = float(con['PARAM']['threshold']) self.input_threshold_tau = int(con['PARAM']['threshold_tau']) self.input_cluster_num = int(con['PARAM']['cluster_num']) self.input_w = float(con['PARAM']['w']) self.input_upper_limit = int(con['PARAM']['upper_limit']) self.input_lower_limit = int(con['PARAM']['lower_limit']) self.input_abnormal_flag = eval(con['PARAM']['abnormal_flag']) self.input_freq = con['PARAM']['freq'] self.input_input_feature = con['PARAM']['input_feature'] self.input_type_predict = con['PARAM']['type_predict'] self.input_ns_tau_p[0]=int(con['PARAM']['ns_tau_p']) self.input_n_tau_d = int(con['PARAM']['n_tau_d']) self.input_n_twin_smooth_gp = int(con['PARAM']['n_twin_smooth_gp']) self.input_n_twin_smooth_coef = int(con['PARAM']['n_twin_smooth_coef']) self.input_reg_model = con['PARAM']['reg_model'] self.input_normalize_spatial_mesh = eval(con['PARAM']['normalize_spatial_mesh']) self.input_rbf_params_solve = con['PARAM']['rbf_params_solve'] self.input_rbf_params_cont_prior = eval(con['PARAM']['rbf_params_cont_prior']) self.input_rbf_params_rbfloc_method = con['PARAM']['rbf_params_rbfloc_method'] self.input_rbf_params_n_neighbors_distortion = int(con['PARAM']['rbf_params_n_neighbors_distortion']) self.input_rbf_params_pow_distortion = int(con['PARAM']['rbf_params_pow_distortion']) self.input_rbf_params_coeff_sigma_rbf=float(con['PARAM']['rbf_params_coeff_sigma_rbf']) self.input_rbf_params_gcv_mode = con['PARAM']['rbf_params_gcv_mode'] self.input_rbf_params_cc_sigma_coeff = float(con['PARAM']['rbf_params_cc_sigma_coeff']) self.input_rbf_params_n_neighbors_rbf_sigmas[0]=int(con['PARAM']['rbf_params_n_neighbors_rbf_sigmas']) self.input_rbf_params_alphas[0]=float(con['PARAM']['rbf_params_alphas']) except Exception as e: logger.debug("設定ファイル取得失敗:" + ifn) sys.exit(1) return 0 def main(self): connflg=0 try: self.get_ini() connflg=1 with psycopg2.connect(user="postgres",password="postjike",host="localhost",port="5432",database="postgres") as conn: connflg=2 logger.debug('処理開始') # self.get_input_data(conn) logger.debug('処理終了') except Exception as e: if connflg==1: logger.debug('処理開始' +str(traceback.format_exc())) elif connflg==2: logger.debug('その他エラー' +str(traceback.format_exc())) logger.debug('処理終了') sys.exit(1) return 0 ifn=os.path.dirname(os.path.abspath(__file__))+'/conf/'+sys.argv[1] print(ifn) yd="" if len(sys.argv) == 3: yd=sys.argv[2] c=operation() c.main() ・operation_1_1.ini [PARAM] input_num=168 add_num=24 tau_p=10 tau_f=1 threshold=1000.0 threshold_tau=10 cluster_num=5 w=1.0 lower_limit=2 upper_limit=400 abnormal_flag=False freq=60T input_feature=offset_latest type_predict=diff ns_tau_p=5 n_tau_d=10 n_twin_smooth_gp=0 n_twin_smooth_coef=30 reg_model=MV_ReducedRankRegression_5_0.0_0.1 normalize_spatial_mesh=False rbf_params_solve=ridge rbf_params_cont_prior=False rbf_params_rbfloc_method=weighted_kmeans rbf_params_n_neighbors_distortion=100 rbf_params_pow_distortion=10 rbf_params_coeff_sigma_rbf=0.2 rbf_params_gcv_mode=diag rbf_params_cc_sigma_coeff=0.1 rbf_params_n_neighbors_rbf_sigmas=3 rbf_params_alphas=0.001 return_analytics = True update_learning_patterns = False [TABLE] table_name=output_data_1_1 pattarn_id=1 before_minutes=60 [LOG] log_level=DEBUG log_name=operation_1_1 ・requirements.txt pandas==0.25.3 numpy==1.17.4 scipy==1.3.3

以下のエラーになります。
Traceback (most recent call last):
File "database_te.py", line 2, in <module>
import pandas as pd
ModuleNotFoundError: No module named 'pandas'
PATHは通したはずですが、エラーを解消する方法を、お聞きしても
よろしいですか。

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

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

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

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

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

TakaiY

2022/09/22 05:17

pythonは複数インストールされていますか? pandasはどのようにインストールしていますか?
shiracamus

2022/09/22 05:45 編集

pandasをPATHに追加しても意味ないんだけど・・・
todasan

2022/09/22 06:13

TakaiY さん インストール方法を追記しました。 shiracamus さん 何か分かる事はありそうですか。
TakaiY

2022/09/22 06:23

回答欄は質問に対する回答を書くためのところです。 追記修正依頼への対応は、質問そのものを編集ください。
todasan

2022/09/22 06:25

TakaiY さん 質問そのものを、修正しました。
guest

回答3

0

yum install python3 python3-pandas

投稿2022/09/22 06:11

編集2022/09/22 06:12
shiracamus

総合スコア5406

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

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

todasan

2022/09/22 08:05

shiracamus さん ありがとうございます。 参考にします。
guest

0

ln -s /usr/local/bin/python3.7 /usr/bin/python3
ln -s /usr/local/bin/pip3.7 /usr/bin/pip3

自分でビルドしてインストールしたPythonを、python3 pip3/usr/binにシンボリックリンクを作ったのなら、そこにパッケージをインストールする時に使うのはpipじゃなくてpip3です。あるいは/usr/local/bin/pip3.7
pipでインストールすると、あなたがビルトしたのでないPythonにインストールされます。

投稿2022/09/22 08:05

otn

総合スコア84555

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

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

todasan

2022/09/22 08:13

otn さん ご指摘ありがとうございます。 コマンドではそのシンボリックリンクを、以下のように認識しています。 python3 Python 3.7.14 (default, Sep 22 2022, 16:32:30) [python3 -m pip install pandas]コマンドなら、自分のビルドした pythonを使っているので、pandasのインストールはこの方法で、 大丈夫でしょうか。
otn

2022/09/25 12:35

そうですね。pip3を使いたくないならそれでもいいです。
guest

0

ベストアンサー

pythonはパッケージの管理ツールを持っています。 pip がそれです。 (anacondaもありますが、ここでは触れません)
pandasはpythonのパッケージです。 なので、pipでインストールするのが良い方法です。

なので、python3-pandas はアンインストールします。

また、python3をソースからインストールしていますが、「yum install python3」も実行しているのであれば複数入っています。どちらの処理を先にしたのかによって、現在のpython3コマンドで実行されるのがどちらのものなのか違います。
僕であれば、yumでインストールしたpython3は削除し、シンボリックリンクを確認します。

ソースからインストールしたpython3を使って pandasをインストールします。

python3 -m pip install pandas

基本的にこれで、python3 で pandasが使えるようになっていると思います。

確認は以下のようにpython3を起動して、importしてみるです。

shell

1$ python3 2>>> import pandas 3>>>

エラーにならなければOK

投稿2022/09/22 06:31

TakaiY

総合スコア12765

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

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

todasan

2022/09/22 08:08

TakaiY さん ありがとうございます。エラーは直りました。 例えば、psycopg2も同様の事が起きました。 その時には、以下のコマンドでよろしいですか。 python3 -m pip install psycopg2-binary これでソースのpython3に、psycopg2が紐づいて、 環境PATHの設定もいらない感じですか。
TakaiY

2022/09/22 08:32 編集

そうですね。 psycopg2 を知りませんが、以下の公式ページからすると、pythonパッケージのインストールはまずはそれを試すのがよさそうですね。 https://www.psycopg.org/docs/install.html#quick-install 環境変数PATHは、基本的にはshellがインストールされているコマンドを探す場所を指定するための環境変数なので、pythonのモジュールのインストール先とは関係ありません。 pythonもモジュールのインストール先を探すための情報を持っています。 ドキュメントはこれです。 https://docs.python.org/ja/3/tutorial/modules.html#the-module-search-path (あまりちゃんと日本語化されていないので、わかりにくいです。 英語で読むのがベストですが、検索してみると説明しているサイトがみつかります) pipを使うと、基本的にはすでにここに入っているところにインストールしてくれます。ただし、複数pythonが入っている場合、pipも複数入っている可能性があり、まさそれぞれのpython毎にモジュールのインストール先が違う場合があるので、ちゃんと想定しているpipを使う必要があります。 混乱を少なくするために pipコマンドでなく「python -m pip」を使うのがいいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問