2017-08-08 76 views
0

我有一個由bash腳本調用的python程序。 bash腳本的輸出保存到日誌文件中。沒有出現在程序執行中的Python源代碼更改

由於缺少配置文件(錯誤的位置),python代碼首先拋出一個錯誤。

這是日誌文件怎麼樣子,

python /tda/elasticsearch/init_upload.py --lang_pair=en-us_ru-ru 350 372 408 580 615 635 664 67 
2 678 690 714 743 765 818 833 855 878 900 924 948 1016 1041 1056 1086 1142 1161 1233 1339 1343 
1353 1355 1412 1468 1477 1480 1503 1504 1505 1514 1520 1533 2212 2243 2268 2301 2387 2430 2441 
2448 2453 2462 2568 2608 2617 2618 2671 2686 2698 2712 2741 2752 2762 2782 2786 2794 2805 2825 
2837 3106 3279 3323 3331 3339 3348 3564 3566 3591 3618 3632 3644 3650 3685 3687 3704 3709 3710 
3711 3712 3713 3733 3735 3742 3756 3802 3902 3937 3965 4145 4185 4258 4299 4300 4566 4604 4605 
4776 4851 4877 5000 5242 5244 5245 5247 5294 5300 5302 5327 7301 7518 7544 7639 7640 7641 7656 
Traceback (most recent call last): 
    File "/tda/elasticsearch/init_upload.py", line 9, in <module> 
    from init import query_all 
    File "/tda/elasticsearch/init.py", line 8, in <module> 
    from langpair import LanguagePair 
    File "/tda/elasticsearch/langpair.py", line 2, in <module> 
    from index import Index 
    File "/tda/elasticsearch/index.py", line 14, in <module> 
    CONF_DIR = "%s/confs" % CONFIG.workingdir 
AttributeError: 'Config' object has no attribute 'workingdir' 

我後來固定錯誤並重新運行程序,但不知何故,源代碼的修改似乎沒有是反映當我執行程序。即使刪除日誌文件並再次運行程序後,我仍然收到相同的錯誤。

Python的抱怨這條線,

File "/tda/elasticsearch/index.py", line 14, in <module> 
     CONF_DIR = "%s/confs" % CONFIG.workingdir 

但這一行已經更新到,

CONF_DIR = os.path.join(CONFIG.workingdir, "confs") 

於是莫名其妙的源代碼更改不會反映。

+0

你確定你正在編輯正確的文件嗎? – Veltro

+0

是的,我很確定。如果我只是使用錯誤日誌中給出的文件位置打開文件,我可以看到更新後的代碼。 – Vinod

回答

1

這不應該發生,因爲通常Python是足夠聰明發現當一個文件被修改,但有時使用陳舊.pyc文件文件 - 通常是一個暗示,奇怪的事情發生了。

解決方法是簡單地刪除該文件夾中的所有pyc文件,他們將在下次運行時重新創建(從電流源)。

pyc文件只是編譯(字節碼)python緩存,以加快執行。

+0

對不起,我沒有提及,但我已經試過清除所有的PYC文件,但也毫無幫助。 – Vinod