看板 Python 關於我們 聯絡資訊
我寫了一支程式用法大概是這樣 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() 這行上面還是有編碼的問題... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.17.133.18 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1451893625.A.C44.html
MashiroKinji: 以找到問題處可能是寫檔案的時候byteIO和StringIO 01/04 15:58
MashiroKinji: 的問題 可是不知道為什麼subprocess會錯誤直接下指 01/04 15:59
MashiroKinji: 令就不會 01/04 15:59
bibo9901: u'2015-10-15', u'2015-11-15' 這樣可以嗎? 01/04 16:29
ENEP: py2? py3? 01/04 16:52
ENEP: 還有一個可能是OS 如果你用py2 on windows, check: 01/04 17:05
ENEP: 簡單的說就是cli下的argv格式不一定等於subprocess給的argv 01/04 17:07
MashiroKinji: 我發現問題了 因為調用subprocess它選用python2.7去 01/04 17:21
MashiroKinji: 執行 01/04 17:21
MashiroKinji: 但是我是用python3去寫的 不知道有沒有方法指定 01/04 17:22
MashiroKinji: subprocess 用的python是 3的版本 01/04 17:22
darkgerm: 寫完整路徑 (e.g., /usr/bin/python3) 或是設環境變數 01/04 21:43
darkgerm: 講錯了,設環境變數不行 01/04 21:45