我想在某些獨立的屏幕抓取腳本中使用Django ORM。我知道這個問題以前曾被問過,但我無法找到解決我的特殊問題的好方法。在獨立腳本中使用Django ORM(再次)
我有一個定義模型的Django項目。我想要做的就是在我的scraping腳本中使用這些模型和ORM。我的目錄結構是這樣的:
project
scrape
#scraping scripts
...
test.py
web
django_project
settings.py
...
#Django files
我試圖做的project/scrape/test.py
如下:
print os.path.join(os.path.abspath('..'), 'web', 'django_project')
sys.path.append(os.path.join(os.path.abspath('..'), 'web', 'django_project'))
print sys.path
print "-------"
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_project.settings'
#print os.environ
from django_project.myapp.models import MyModel
print MyModel.objects.count()
不過,我得到一個ImportError
,當我嘗試運行test.py:
Traceback (most recent call last):
File "test.py", line 12, in <module>
from django_project.myapp.models import MyModel
ImportError: No module named django_project.myapp.models
我發現這個問題的一個解決方案是創建一個符號鏈接到../web/govcheck
在scrape文件夾中:
:scrape rmanocha$ ln -s ../web/govcheck ./govcheck
用這個,我可以運行test.py就好了。然而,這看起來像一個黑客,更重要的是,不是很便攜(我將不得不在我運行此代碼的任何地方創建這個符號鏈接)。
所以,我想知道如果有人有任何更好的解決方案,我的問題?
謝謝 - 工程。 – 2010-03-15 04:03:50