【问题标题】:Importing my package from a Django management command从 Django 管理命令导入我的包
【发布时间】:2017-01-29 21:58:57
【问题描述】:

我编写了一个包,它最初是一个命令行工具,但我决定对于 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 有关吗?如果需要,我可以从中发布 sn-ps。主要是我想知道这是否应该归咎于:

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

这是否会阻止从某些地方导入模块?我看不出它会怎样,因为我可以通过manage.py shell 做到这一点。

【问题讨论】:

    标签: python django setuptools django-management-command


    【解决方案1】:

    问题是您的文件 (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
    

    【讨论】:

      猜你喜欢
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 2012-05-01
      • 1970-01-01
      相关资源
      最近更新 更多