[問題] subprocess和參數編碼問題

作者: MashiroKinji (MashiroKinji)   2016-01-04 15:47:03
我寫了一支程式用法大概是這樣
python print_date_list.py start_date end_date
去印出兩日期之間的日期
而我直下對程式下指令
python print_date_list.py 2015-10-15 2015-11-15
這樣程式會正常運行
但是如果我利用另一個python程式去
subprocess.cell(['python','print_date_list.py','2015-10-15','2015-11-15'])
會出現
initial_value must be unicode or None, not str
的錯誤
不知道問題是不是出在print_date_list.py程式中有把str 轉 datetime
datetime.strptime(sys.argv[2], u"%Y-%m-%d").date()
這行上面還是有編碼的問題...
作者: MashiroKinji (MashiroKinji)   2016-01-04 15:58:00
以找到問題處可能是寫檔案的時候byteIO和StringIO的問題 可是不知道為什麼subprocess會錯誤直接下指令就不會
作者: bibo9901 (function(){})()   2016-01-04 16:29:00
u'2015-10-15', u'2015-11-15' 這樣可以嗎?
作者: ENEP (Moo)   2016-01-04 16:52:00
py2? py3?還有一個可能是OS 如果你用py2 on windows, check:http://stackoverflow.com/questions/846850/簡單的說就是cli下的argv格式不一定等於subprocess給的argv
作者: MashiroKinji (MashiroKinji)   2016-01-04 17:21:00
我發現問題了 因為調用subprocess它選用python2.7去執行但是我是用python3去寫的 不知道有沒有方法指定subprocess 用的python是 3的版本
作者: darkgerm (黑駿)   2016-01-04 21:43:00
寫完整路徑 (e.g., /usr/bin/python3) 或是設環境變數講錯了,設環境變數不行

Links booklink

Contact Us: admin [ a t ] ucptt.com