Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中取消缓存导入的模块?_Python - Fatal编程技术网

如何在python中取消缓存导入的模块?

如何在python中取消缓存导入的模块?,python,Python,这真把我吓坏了。我的项目看起来像这样 . |-- main.py |-- classes | |-- __init__.py | |-- exceptions.py 在那些exceptions.py中,我最初创建了一个名为SecurityError的异常: class SecurityError(Exception): pass 我使用class.exceptions import*将文件包含在main.py中,而SecurityError在我刚刚raise时正常工作

这真把我吓坏了。我的项目看起来像这样

.
|-- main.py
|-- classes
|   |-- __init__.py
|   |-- exceptions.py
在那些
exceptions.py
中,我最初创建了一个名为
SecurityError
的异常:

class SecurityError(Exception):
    pass   
我使用class.exceptions import*将文件包含在
main.py
中,而
SecurityError
在我刚刚
raise
时正常工作

之后,我还添加了
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

未定义全局名称“XXX”形式的混淆错误通常意味着您正在隐藏标准库模块。您必须重命名您的
异常
模块。

您是如何运行/测试的?自第一次运行以来,您是否在同一个python会话中进行测试?我想我应该提到这一点-我只是运行
C:\\\每次在WIndows命令行中使用MyProject>py-2 main.py
。也就是说,我肯定会退出这个过程,除非它在后台分叉并持续。您如何“使用”
FilesystemError
?消息
global name…
表示您在某处将其称为全局名称。您是在
exceptions.py中执行此操作的吗?如果没有,您是否确实从尝试使用它的模块导入了它?您可以在问题中包含完整的堆栈跟踪吗?请尝试执行
从类导入异常
,然后执行
打印异常。\uu\u文件
以查看文件从何处导入。有一个名为
异常
的内置Python模块。如果您使用的是
from classes.exceptions import*
,则不应导入此项,但如果您在任何地方执行类似于
import exceptions
的操作,则可能会导致问题。当我重命名它、运行程序并重新重命名它时,此项功能会正常工作。所以我可能在跟踪一些事情,但问题的原因并不简单。另外,我使用
classes.exceptions
可以很好地解决任何名称冲突问题。