先日、Visual StudioにPythonを導入したが、予測変換がいまいちだったり、反応が遅いのでAnaconda+Pycharmに変更しました。
まだ、debugのショートカットが"F?"ではありますが、vsでVC#を使っているときぐらいの使い勝手だと思ってます。
pythonのIDEも数種類あるようですし、anacondaのようなパッケージもいろいろあると思いますが、私は↓で紹介されていることもありanacondaを使いました。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者: Al Sweigart,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
じつは、先日まで使っていたwin 10 PCが故障したので、いつもとはちがうwin7を使っています。
修理はできそうなので、これはこれで修理が終わったら、ここで報告しようと思う。
まずはインストールですが、ここを参考にすると、問題なくインストールできました。ちなみにWin7(pro 64bit)でも問題なくこれを参照してインストールできました。
www.procrasist.com
次にTwitterをつかうため、python用のライブラリ”tweepy”をインポートします。
Anacondaのプロンプトを立ち上げ、
$pip install tweepy
とします。
最後に、デバックをしようとすると、インタプリタがないといってくるので、右上の歯車のところからインタプリタを設定します。
これで、Windows上でAnaconda+Pycharmによるpython環境はできたことになります。
次にpythonのコードを作成したら、ラズパイに転送します。
まず、ラズパイにファイルを転送するためにTeratermを導入します。
↓を参照し、このとおりに進めれば問題ないです。
Raspberry PiをWindowsで操作する(SSH) | S2
ここで、標準インストールがおすすめ(適当にデフォルトのカスタムですすめたら接続できなかった)
あらかじめラズパイのIPは調べておきます。ポートは22に変更します。
ユーザー名とログインパスを入力すると、LT Tatminalが立ち上がり、LAN接続で操作できるようになります。
SSH(リモートデスクトップやTeraterm接続)を始めると、パスワードを変更しろといってきます。セキュリティのためです。
そのままでも使えないことはないが
$sudo raspi-config
からパスワードを変更しておきましょう。
Teratermのターミナル画面に.py ファイルをドロップすると転送できます。
すると、何かErrorらしいものがでました。
ラズパイにtweepyが入っていないためのようです。まずはtweepyをインストールします。
$sudo pip3 instal tweepy
ここでも"sudo" (管理者権限で実行を示す)を入れないとErrorになる。
$ls
で転送した.pyが表示されればOK。
$python3 twitter.py
で実行します。
検索してファイルに書き出す機能とテキストファイルからBot的に一定時間ごとにTweetする機能を作りました。
ちなみに、無限ループにしているので、停止は"Ctrl + c" です。
文字コードはWindowsでC#で使ったListを流用したかったので、"utf"を明示的に指定しています。
なんか、標準だとshift-jisかなにかで文字化けたので。
# -*- coding: utf-8 -*- import random import tweepy import time print("start_python!") CONSUMER_KEY="**********" CONSUMER_SECRET="**********" ACCESS_TOKEN="**********" ACCESS_SECRET="**********" auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET) api = tweepy.API(auth) def serch(): #関数定義 keywords = [u'電子工作',u'秋葉原'] query = 'OR'.join(keywords) file = open('serch.txt', 'a', encoding='utf') # 追記モードでオープン for tweet in api.search(q=query, count=20): file.write(tweet.user.screen_name) file.write("\r\n") file.write() print("") file.close() def Auto_tweet(): #関数定義 rand=random.randint(1,109) n=0 file=open('List.txt', 'r', encoding='utf') #UTFを指定する tweet="1" try: while tweet!="": tweet = file.readline() n=n+1 if n == rand: break print(tweet) api.update_status(tweet) #tweet except: Print("Tweet Error!") while(True): serch() Auto_tweet() print("Sleep!") time.sleep(3600)