我有一个Python文件,[工作目录/]modules/commands.py
,它只包含以下内容:
def getId():
return "commands"
然后我有另一个文件,[工作目录/]main.py
,其中使用了以下内容:
fpath = "modules/commands.py"
mname = "commands"
imp.load_source(mname, fpath)
在
commands.py
中添加了getId()
函数后,尝试运行main.py
时出现以下错误:SyntaxError: Non-ASCII character '\xd1' in file modules/commands.pyc on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
。该错误提示存在非ascii字符,但文件中并没有这样的字符。是什么导致了这个错误?暂时可以通过删除.pyc文件解决问题,但下次运行时问题会再次出现。
load_source
未被记录。有没有不使用记录的load_module
函数的原因?根据错误,似乎load_source
正在加载编译(.pyc
)文件,就好像它是源代码一样,但由于它没有被记录,这只是一个猜测。 - torek[working dir/]modules/__pycache__
。 - rnbguy