簡體   English   中英

如何在python中取消緩存導入的模塊?

[英]How can I uncache imported module in python?

這真讓我感到震驚。 我的項目看起來像這樣

.
|-- main.py
|-- classes
|   |-- __init__.py
|   |-- exceptions.py

在這些exceptions.py ,我最初創建了一個稱為SecurityError異常:

class SecurityError(Exception):
    pass   

我使用from classes.exceptions import *的文件將其包含在main.pyfrom classes.exceptions import *當我raiseraise時, SecurityError通常可以正常工作。

之后,我還添加了FilesystemError ,但是無論何時使用它,我都會得到:

未定義全局名稱“ FilesystemError”

我試圖刪除classes目錄中的*.pyc文件,但沒有效果。 exceptions.py任何更改均無效,包括使文件無效的任何可笑的更改:

class FileFOO BAR BAZ systemError(Exception):
    pass

class SecurityErr foo bar bazor(Exception):
    pass    

自第一次運行以來,該程序的行為就像文件從未更改過一樣。 我認為這種行為與直觀的編程沒有任何關系-如果有緩存,它應該在該目錄中。

我直接從命令行運行python:

C:\programing\python\MyProject>py -2 main.py

global name 'XXX' is not defined形式的令人困惑的錯誤通常意味着您正在隱藏標准庫模塊。 您必須重命名exceptions模塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM