Python檔案執行出錯修改後依然報錯的問題

2021-10-04 18:31:56 字數 1077 閱讀 2323

switches.py是ryu控制器子目錄topology下的乙個檔案。我根據實驗需要對switches.py進行編輯時,有一行**的縮排出錯(少打了乙個tab)而沒有發現。因為之前還修改過ryu的全域性啟動引數(在ryu頂級目錄下的flags.py檔案中新增了**),因此儲存檔案後,重新安裝了ryu控制器:

sudo python setup.py install
完成安裝後,啟動ryu-manager應用報錯,是switches.py中的縮排錯誤。一開始我沒有留意錯誤資訊中的位址,直接從主資料夾中進入ryu子目錄topology下的switches.py中進行修改,儲存後再啟動ryu-manager應用,依然顯示同樣的錯誤。檢查無誤後再重新安裝了ryu,啟動應用之後還是出現該錯誤。

此時我注意到,出現錯誤的switches.py的路徑並非我所修改的主資料夾下ryu子目錄topology中的switches.py的檔案路徑,而是:

/usr/local/lib/python2.7/dist-packages/ryu/topologyswitches.py

因此,我進入對應的目錄下,sudo vim 編輯switches.py檔案,再次啟動ryu-manager應用終於成功了。

dist-packages是debian系統及其衍生系統的預設python的模組預設安裝目錄, 如果使用包管理器(如apt-get, easy_install, pip)安裝python的模組,都會安裝到該位址下。

所以,這個錯誤的原因很可能是:我在自己的系統中安裝和執行各種軟體時都用的是系統預設的python2.7。由於第一次編輯switches.py出錯,在進行ryu控制器重新安裝後,dist-packages子目錄下的switches.py就是有錯誤的,執行ryu應用也會出錯。此時,修改主資料夾ryu子目錄下的switches.py檔案並不會影響dist-packages下的switches.py(經過嘗試,即便再次重新安裝ryu控制器也不能改正),只有進入dist-packages子目錄中手動改正switches.py,才能最終解決問題。

相比於這個錯誤本身,我得到的更大的教訓是程式執行出錯後一定要注意錯誤本身真正的涵義,而不是直接盲目地進行修改。

python 讀csv檔案 修改後儲存

1.建立乙個讀物件和寫物件 2.逐行讀取csv檔案中的內容,逐行追加到寫物件中 3.寫完後.close 關閉寫物件 4.最後執行mv 更好檔名 需在linux下 5.is number函式是用於判斷是否是數字,可不管 import csv import os def is number s try ...

Python解析xml檔案並修改後儲存 demo

前情提要 需要對底層的引數檔案 xml格式 進行讀取,並將前端下發的資料覆蓋原資料,並儲存。下發引數格式 json 呈現 from xml.dom import minidom targetpath os.path.join path,targetfile print targetpath 列印引數...

複利計算(修改後)

include includevoid list void a void b void c void d void e void f void g main if sel 0 switch sel void list 目錄表 void a 一次投入複利計算 printf t 請輸入利率 while ...