我試圖讓一個舊的 Python 腳本運行,它與許多用 Python 2.7 撰寫的腳本互動......升級它絕對不會發生,所以我需要解決一個錯誤。
主腳本(listener.py)呼叫的一個模塊(reply.py)中有一些時間引數,前導零,我認為這是導致此錯誤的原因:
[myuser@server ~]$ python2.7 /home/myuser/public_html/app_project/listener.py
Traceback (most recent call last):
File "/home/myuser/public_html/app_project/listener.py", line 10, in <module>
from modules import reply
File "/home/myuser/public_html/app_project/modules/reply.py", line 144
if now_time >= time(09,00) and now_time <= time(17,00):
^
SyntaxError: invalid token
[myuser@server ~]$ python2.7 /home/myuser/public_html/app_project/listener.py
Traceback (most recent call last):
File "/home/myuser/public_html/app_project/listener.py", line 10, in <module>
from modules import reply
File "/home/myuser/public_html/app_project/modules/reply.py", line 144
if now_time >= time(09,00) and now_time <= time(17,00):
但我感到困惑的是,主腳本被設定為在 Python2.7 中執行……前導零應該沒問題?
作業流程是...
cronjob 呼叫 shell 腳本來檢查 python 行程(listener.py)是否正在運行:
#!/bin/bash
pid_file='/home/myuser/public_html/app_project/listener.pid'
if [ ! -s "$pid_file" ] || ! kill -0 $(cat $pid_file) > /dev/null 2>&1; then
echo $$ > "$pid_file"
exec /usr/bin/python2.7 /home/myuser/public_html/app_project/listener.py
fi
所以主要的可執行檔案(listener.py)在Python2.7中運行......所以我不明白模塊(reply.py)中前導零的問題是什么......?
是因為模塊(reply.py)以某種方式通過 Python3 執行嗎?這就是它不喜歡前導零的原因嗎?還是關于其他東西的“無效令牌”錯誤?
任何解決此問題的建議將不勝感激。
請注意,我不想大量更改代碼(這不是應用程式中唯一需要更改的代碼,即去掉前導零并將其升級到 Python3 需要很長時間才能正確完成),我只是想確保它在 2.7 中都能正常執行。沒有其他理由將應用程式升級到 Python3。
uj5u.com熱心網友回復:
在 Python 3 之前,整數標記的前導零表示該值是八進制的 - 例如,07。前導零單獨指示后面是八進制
在 Python 3 中,前導零可用于八進制值,但您需要一個額外的限定符 - 例如 0o7
09 的標記在 Python 2 或 3 中均無效
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/498073.html
標籤:Python python-3.x python-2.7 壳 cron
