2016-09-21 80 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