pyenv install でエラーが出た時の対処法

Pythonの開発環境を用意しよう!(Mac) | プログラミングの入門なら基礎から学べるProgate[プロゲート]

これを見ながら進めていましたが、エラーが出てしましました。

% pyenv install 3.6.5

python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.5.tar.xz...
-> https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
Installing Python-3.6.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

BUILD FAILED (OS X 11.0.1 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/fz/v6d_5ykj1x1b8w9c9l6dmysm0000gn/T/python-build.20201116203917.79838
Results logged to /var/folders/fz/v6d_5ykj1x1b8w9c9l6dmysm0000gn/T/python-build.20201116203917.79838.log

Last 10 log lines:
./Modules/posixmodule.c:8210:15: error: implicit declaration of function 'sendfile' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        ret = sendfile(in, out, offset, &sbytes, &sf, flags);
              ^
./Modules/posixmodule.c:10432:5: warning: code will never be executed [-Wunreachable-code]
    Py_FatalError("abort() called from Python code didn't abort!");
    ^~~~~~~~~~~~~
1 warning and 1 error generated.
make: *** [Modules/posixmodule.o] Error 1
make: *** Waiting for unfinished jobs....
1 warning generated.

対処法

% CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" \
pyenv install --patch 3.6.5 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)

とすることでした。3.6.5は、入れたいpythonのバージョンに変えてください。

% CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" \
pyenv install --patch 3.6.5 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)

python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.5.tar.xz...
-> https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
Installing Python-3.6.5...
patching file Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst
patching file configure
Hunk #1 succeeded at 3369 (offset -57 lines).
patching file configure.ac
Hunk #1 succeeded at 495 (offset -15 lines).
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.6.5 to /Users/haruka/.pyenv/versions/3.6.5

参考:
Unable to build Python on macOS Big Sur with Xcode 12 beta · Issue #1643 · pyenv/pyenv · GitHub

大きめのデータをインポートする場合は、pythonプログラム書いて入れたほうが安定する。

表題の件、プログラム書いたほうが安定します。
ということで書いておきます。

'''
Created on Nov 15, 2020

@author: haruka
'''
#DB
import mysql.connector
import pandas as pd
import math
import datetime

dt_now = datetime.datetime.now()
nowdatetime = dt_now.strftime('%Y/%m/%d %H:%M:%S')
print(nowdatetime)

dbh = mysql.connector.connect(
    host='■■■ホスト■■■',
    port='3306',
    db='■■■DB名■■■',
    user='■■■ユーザ名■■■',
    password='■■■パスワード■■■',
    charset='utf8'
)
cur = dbh.cursor()

dfs = pd.read_csv('■■■csvファイルpath■■■')
print(dfs)

for index, row in dfs.iterrows():
    sql = "■■■INSERT INTO `receipts`(`id`, ~, `created`, `modified`) VALUES (null,■■■"#sqlのVALUES あたりまで記入
    for df in dfs:
        #print(df + ":" +str(row[df]))
        #print(str(row[df]) == 'nan')
        if str(row[df]) == 'nan':
            sql = sql + "null, "
        else:
            #print(isinstance(row[df], int) or isinstance(row[df], float))
            if isinstance(row[df], int) or isinstance(row[df], float):
                sql = sql + str(row[df]) + ", "
            else:
                sql = sql + "'" +str(row[df]) + "', "
    sql = sql + "'" + nowdatetime + "', '" + nowdatetime + "')"#createdとmodified用
    #print(sql)

    try :
        cur.execute(sql)
        dbh.commit()
    except :
        print(sql)

pyOCRで画像データ認識

macで環境準備

$ sudo pip install pyocr
$ brew install tesseract
$ ls /usr/local/Cellar/tesseract/4.1.1/share/tessdata/
$ wget https://github.com/tesseract-ocr/tessdata/raw/4.00/jpn.traineddata
$ mv jpn.traineddata /usr/local/Cellar/tesseract/4.1.1/share/tessdata/


参考
Mac環境でpyOCRで画像データをテキスト化する - Qiita

terminalからgithubにあげるときのメモ

参考にさせてもらったサイト
qiita.com


もし、他のアカウントのプロジェクトにあげたくてエラーが出た場合は、次のコマンドを入力してから行うと良い

% git remote remove origin

つながりを作ること 〜 「出会い系サイトで70人と実際に会ってその人に合いそうな本をすすめまくった1年間のこと」を読んで

今回の本

www.kawade.co.jp


どうやら私は、1日に一塊は外に出ないとイライラしたり虚無感に襲われる人間らしい。
と言うことが最近わかってきた。

土日休みの時、土曜日家から1歩も出なかったら凄く損した気持ちになった。
日曜日特に用事はなかったけど、「本屋さんに行って本でも買って喫茶店で読むか」と出かけてみた。
その時本屋さんで出会ったのがこの本。

前に本屋さんに訪れた時も気になったけど、その時は別の本を手にしてしまった。
表紙が黄色で目立っている。そしてこのタイトルは何なんだ と思ったことを覚えている。


アマゾンに書いてあった概要は以下の通り

夫と別れ“出会い系"で知り合った人に本をすすめた書店員の話

刺激的なタイトルの通り、本書は出会い系サイトを介して知り合った人に本を薦めまくった実体験に基づく仰天の実録小説。作者の花田菜々子さんは現役の書店員というから驚きだ。

「私の体験談をおもしろがって聞いてくれる方もいれば、『危険だ』と苦言を呈する方も勿論います。物騒なニュースが報じられることもありますが、出会い系サイトで事件に巻きこまれる確率と路上で交通事故に遭う確率はきっと同じ位ではないでしょうか。ツイッターのオフ会でも知らない人と会えるけど、もっと荒っぽい手段でなければ、私の“傷"は癒えないという直感があったのです」

2013年冬、夫に別れを告げて家を飛び出した花田さんは、当時働いていた「ヴィレッジヴァンガード」の仕事にも行き詰まりを感じていた。ままならぬ日々を送る中、ふと目に留まったのが「知らない人と30分だけ会って話してみる」という出会い系サイト「X」だった。

「私の人生を客観的に見ると、夫婦関係は上手くいっていないし、仕事も楽しくない。かといって、夢中になれる趣味や充実したプライベートがあるわけでもない。『あ、何もない! 』とゾッとしました。ヴィレッジにいる限りは、話す内容も考えていることも、だいたい同僚と一緒です。もし違う空間に身を置いたら、どんな言葉を他人から聞けるんだろう? 逆に私は他人に対してどういう言葉を発するんだろう? と思って。今いる場所から抜け出したいという気持ちから、『X』に登録しました」

プロフィール欄に個性を出すため、悩んだ末に書いたのは「今のあなたにぴったりな本を1冊選んでおすすめさせていただきます」。エロ目的の人、平気で嘘をつく人――「X」は魑魅魍魎(ちみもうりょう)の世界かと思いきや、フリーの写真家を目指す女の子に励まされ、笑顔のすてきな映像作家と意気投合し、優しい女性のコーチングを受けて号泣もした。人との出会いを繰り返すうちに、本の薦め方にも変化が生まれたという。

「アマゾンのレコメンド機能のような主観のない紹介が主流になりつつある今、人間が本を薦める意義を考えると、生の言葉を混ぜ込むことなのかな、と。『なぜこの人に、この本を紹介するのか』という部分を省略せず、ポジティブな言葉で伝えることが、本と人を繋ぐ接着剤になる。読書のモチベーションも高まるし、その本の付加価値になると思うんです」

評者:「週刊文春」編集部

(週刊文春 2018年06月21日号掲載)
出会い系サイトで70人と実際に会ってその人に合いそうな本をすすめまくった1年間のこと (日本語) 単行本 – 2018/4/17


出会い系ってすごく危ない印象があったけど、知らない人と自分の話ができると言うのはとても魅力的だなと感じた。
自分を知っている人、一緒に働いている人には喋りにくいことでも、一度きりしか合わない人にだけは話せることもあると思う。

今、私はつながりに関する研究をしている。そこで出てくる問題は、つながりとは何かと言う事。
研究では大体、よく連絡取る人を上げてもらったり、紹介した人をたどったり、そんな感じでつながりを作ってつながりがもたらす影響を調べている。
でも、研究の中では取り上げられない人も実際にはいるのが現状。1人の人の全てのつながりを把握する事はそもそも難しい。
特に1度きりしか会ったことがない、実際会ったこともないけれど、その人にとって影響与えた人だっていると思う。それをどうやって研究で検証していったらいいのだろうか。

研究の中ではある条件の中でのつながりばかり見ている。それって本当にいいのだろうかと、ずっと思ってきた。
でも研究を進めなければならないから、蓋をしていた部分もある。


自分の中でいちど、つながりを定義したことがある。その時つながりは2つの方法で定義できると感じた。
社会構造上でのつながりと心理的距離でのつながりである。
f:id:harucharuru:20200830181454j:plain


要約するのが苦手で、この本と合わせて記すのは難しいけれど、つながりについて今一度考えたいと思った。
あと、私も知らない人と会って話してみたい。少し怖いけど。
その人のひととなりと、生き方について聞いてみたい。研究と言う固い側面じゃなくて。そんなふうに感じた。

(音声入力をしているため、変な文があるかもしれません…)

ものと人の心について 〜 「あなたの人生、片付けます」を読んで

基本的にこのブログは、技術的な記事について自分のメモとして書いています。
なかなか小説を読まない私ですが、ふらっと寄った図書館で目を引く本を見つけてしまったので購入しました。
買ってすぐスターバックスで2時間ぶっ通しで一気読み。
記録として残してみようと思います。

読んだ本はこれ
あなたの人生、片づけます | 垣谷 美雨 |本 | 通販 | Amazon

2016年に出版された本です。
なぜこの本に興味を持ったかと言うと、私が最近見ているYouTubeが関係してます。


おすすめに出てきた動画だったんですが、興味を持ってほぼ全ての動画を見てしまいました。
知ってる人もいるんではないでしょうか?
愛知県で片付けをしている会社がやっている、「片付けトントン」と言うアカウントのYouTubeです。
片付けトントン - YouTube

いわゆる汚部屋やゴミ屋敷、引っ越しのために片付けが必要になったなど、片付けを行っている作業風景を動画にまとめています。
タイトルや編集の仕方、またどんどん綺麗になっていく部屋の様子やスタッフさん達の和気あいあいとした姿を見るのがとても好きです。
またブログも見てみると、なぜ汚い部屋になってしまったのかといった背景を知ることができ、ゴミ屋敷と言うものについての考え方を変えてくれます。


そこで出会ったこの本「あなたの人生、片付けます」は、片付け屋である大庭十萬里が、依頼主や依頼主の家族の部屋を
原因を探りながらきれいに蘇らせて行きます。大庭は片付けは基本的にしませんが、対象者の心と向き合い、部屋だけでなく人生も片付けていきます。

社内不倫に疲れた30代OLのゴミ屋敷のような部屋、妻に先立たれて何も家庭のことができていない老人、1部屋だけ片付いている部屋がある主婦の家…
様々な背景の家が出てきます。それぞれの内容に関してとても興味を持って読むことができたのですが、1番心を打たれたのが一番最後のお話でした。

詳しい内容はネタバレになるので記しませんが、
人が死んだ後どのように乗り越えていくのか、死んだ直後の心情や生きがいについてとても考えさせられる内容でした。
なんでも死と言うのはやってきますが、残された人たちがそれをどう受け止めてどういう風に生きていくのか、
寿命であったり何か予兆があったらある程度は心の整理ができた状態で見送ることができるかもしれません。
しかし突然、大切な人の1人がいなくなってしまったら、自分の心や生きがいはどうなってしまうのだろうと思いました。


幸いなことに私の祖父母はまだ元気です。
でもいつ死ぬか分かりませんし、高齢じゃない若い人も突然死ぬかもしれません。
そんな時自分は何ができるのか、そしてもし自分が突然死んだとき、今のこの人生本当に良かったと思えるのか、
今一度考えてみたいと思いました。

お勧めです。