0

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

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.

4

1 回答 1

2

问题是您的文件(codequal.py)与模块具有相同的名称。您需要更改其中之一。我推荐了应用程序内的文件:

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

/home/path/to/django/project/some_app/management/commands/codequal_utils.py
于 2016-09-21T15:05:52.617 回答