2016-09-21 86 views
0

我已经编写了一个最初是命令行工具的包,但我决定对于Django它应该从管理命令运行。我安装我的外包装使用pip install --editable(称为codequal),我可以成功地使用manage.py shell从该包导入模块:从Django管理命令导入我的包

in[0]: from codequal import something 
in[1]: something.some_method() 
out[2]: u'result' 

这工作得很好。然而,当我尝试在管理命令中做同样的事情时,我遇到了一个错误:

File "/home/path/to/django/project/some_app/management/commands/codequal.py", line 8, in <module> 
    from codequal import something 
ImportError: cannot import name something 

这是为什么?我可以使用管理命令中的其他已安装软件包。这可能与我的setup.py有关吗?如果需要,我可以从中发布片段。主要我想知道是否这部分是怪:

entry_points={ 
    'console_scripts': [ 
     'codequal = codequal.cli:main', 
    ], 

这是否阻止从某些地方导入模块?我看不到它会如何,因为我可以从manage.py shell开始。

回答

2

问题是您的文件(codequal.py)与模块名称相同。你需要改变其中之一。我recomended里面的应用程序文件:

/home/path/to/django/project/some_app/management/commands/codequal.py 

/home/path/to/django/project/some_app/management/commands/codequal_utils.py 
+0

谢谢!这可能需要很长时间才能找出... – benwad