django起shell的时候遇到code.py的问题

作者:半瓶墨水   链接:http://www.2maomao.com/blog/code-py-problem/

用Django建了一个工程,然后生成了一个叫做code的项目,再用manage.py shell的时候报错了:

Traceback (most recent call last):
  File "..\manage.py", line 11, in <module>
    execute_manager(settings)
  File "c:\python\Lib\site-packages\django\core\management.py", line 1672, in execute_manager
    execute_from_command_line(action_mapping, argv)
  File "c:\python\Lib\site-packages\django\core\management.py", line 1567, in execute_from_command_line
    action_mapping[action](options.plain is True)
  File "c:\python\Lib\site-packages\django\core\management.py", line 1284, in run_shell
    code.interact()
AttributeError: 'module' object has no attribute 'interact'

探究了一下,发现python自己有个code.py,专用来做interact shell,我自己这边有个code文件夹,结果直接import的时候就出问题了。

项目做了不少了,不想改了,干脆把c:\python\lib下面的code.py做了一个copy,叫做ohmycode.py,然后到managemeng.py里面import ohmycode之后的代码都从”code” 改成 “ohmycode”。

搞定。

我知道这样有风险,以后部署到其他机器上的时候会有问题,不过暂时先这么干了,在这里记一下。

顺便抱怨一下python的标准库的引用,我觉得都应该放在一个目录下,顶多引用的时候多写点儿代码,也不至于冲突,现在可好,c:\python\lib下一百多个库,说不定哪天起个文件名就撞在枪口上了。

留下回复