从 Django 管理命令导入我的包
Importing my package from a Django management command
我写了一个包,它最初是一个命令行工具,但我决定对于 Django,它应该是来自管理命令的 运行。我已经使用 pip install --editable
安装了我的外部包(称为 codequal
),我可以成功地使用 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有关?如果需要,我可以 post 从中摘录。主要是想知道是不是这部分的问题:
entry_points={
'console_scripts': [
'codequal = codequal.cli:main',
],
这会阻止从某些地方导入模块吗?我看不出它会怎样,因为我可以从 manage.py shell
.
开始
问题是您的文件 (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
我写了一个包,它最初是一个命令行工具,但我决定对于 Django,它应该是来自管理命令的 运行。我已经使用 pip install --editable
安装了我的外部包(称为 codequal
),我可以成功地使用 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有关?如果需要,我可以 post 从中摘录。主要是想知道是不是这部分的问题:
entry_points={
'console_scripts': [
'codequal = codequal.cli:main',
],
这会阻止从某些地方导入模块吗?我看不出它会怎样,因为我可以从 manage.py shell
.
问题是您的文件 (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