2018年9月16日日曜日

python バージョン変換(2から3へ)

昨日は、npdb(デバッカー)のソースのバージョンをUPさせた。

※http://simple-and-useful.net/netpdb/npdb.html



いくつかの注意点をまとめました。

print が関数になっている。

ver2
        print "abc"

ver3
       print("abc")


文字列のバイト配列が、明確に区別された為に、苦労した。

バイト配列にしたい時は、文字列の前に"b"をつければOKだ

                        c = b"STOP-PROCESS"
                        os.write( self.pipeout0, c)


リードしたするとバイト配列で返却されるので、
 デコードして文字列とするのだ。

                        line = os.read( rready[0], 1024)
                        line = line.decode()


逆にバイト配列にしたい場合は、encode()を使用する



                        line = line.decode()



🔸バージョン変換する場合には、環境も整備しなければいけない
 モジュール(numpy)をインストールのときもいろいろあったなー

pipもバージョンがあるらしい
pip3でもよいが、3.4か3.5か3.6かを指定したい場合は、
以下のようにやりました。
さすがに、pip3.4 とか pip3.6とかはないので。。。

  python3.6 -m pip install  numpy


Ubuntu add-apt-repositoryがなかったりしましたが
すべて完了してしまった。



version は、3.6が入った、モジュールもなんとか入った。





----------------------------------------------------------------------------------
誰でも簡単に使える、 クラウド パイソンデバッカー (IDE/編集可能)
 Npdb

----------------------------------------------------------------------------------

モジュールのサンプル

# -*- coding: utf-8 -*-

import sys
#import cv2
import simplejson


from datetime import *
from dateutil.relativedelta import *
import calendar


now = datetime.now()
today = date.today()
# 来月
print( now + relativedelta(months=+1) )
# 来月の次の週
print( now + relativedelta(months=+1, weeks=+1) )
# 来月の次の週のAM10時
print( now + relativedelta(months=+1, weeks=+1, hour=10) )
# datetimeだけでなくdateも使用可能
print( relativedelta(datetime(2003,10,24,10,0), today))



sys.path.append('/root/.pyenv/versions/3.6.5/lib/python36.zip' )
sys.path.append('/root/.pyenv/versions/3.6.5/lib/python3.6' )
sys.path.append('/root/.pyenv/versions/3.6.5/lib/python3.6/lib-dynload' )
sys.path.append('/root/.pyenv/versions/3.6.5/lib/python3.6/site-packages' )

import numpy
import json

import math #mathモジュールを読み込んでいます。
kyori = 20
kakudo = math.radians(32) #角度をラジアンに換算
takasa = kyori * math.tan(kakudo) #高さを計算
takasa = math.floor(takasa * 100)/100 #小数点以下第2位を切り捨て
print(str(takasa) + "m") #計算結果を文字列に変換して出力

print( "sample1" )
print( sys.version )

def funcNo1():
   
    data1= 100
   
    print( data1 )

   

   

funcNo1()


for i in range(5):
    print( i,"hello" )