2012-06-28 125 views
0

我正在將我的Django項目開發環境遷移到Eclipse。Django的Eclipse配置設置無法找到外部庫

我有Python和Django在Eclipse中正常工作。但是,當我嘗試添加外部庫時,該項目找不到它們。

這裏是我是如何被添加所需的模塊:

  1. 右鍵單擊項目並選擇屬性
  2. 選擇外部庫選項卡
  3. 要麼添加源文件夾(這是我的虛擬環境)或雞蛋(也在那裏)。

然而,在這兩種情況下,當我做到這一點(爲消息模塊)做了syncdb,當我得到這個錯誤: 錯誤:沒有模塊名爲消息

我試圖重新啓動Eclipse的,但仍然沒有運氣。

回答

0

我是新來的Django,因此可能不是最好的做法,但對我來說工作得很好:

  • 您正在使用的PyDev?如果是的話,你的外部庫存儲在your_workspace/your_project/.pydevproject文件是這樣的:
<path>/usr/local/lib/python2.7/dist-packages/django_annoying-0.7.6-py2.7.egg</path> 
  • 在我看來,這個路徑在開發時間用於代碼完成和檢查類型和等等......但是當你運行你的項目並且Eclipce不會自動將它們放到PATH中時它們必須在你的pythonpath中。

  • 爲了確保Django的應用程序是在路上,我添加類似的東西我settings_local.py:

# v      PATHS SETTINGS        v # 

import os 
import sys 
PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..') 

# v      3d-party django-apps       v # 

DJANGO_APPS_ROOT = os.path.join(PROJECT_ROOT, '..', '..', 'djaddons') 

sys.path.insert(0, os.path.join(DJANGO_APPS_ROOT, 'south')) 
sys.path.insert(0, os.path.join(DJANGO_APPS_ROOT, 'annoying')) 

if CONF_APP_REGISTRATION_ENABLED: 
    sys.path.insert(0, os.path.join(DJANGO_APPS_ROOT, 'registration')) 

# v      python libs         v # 

PYTHON_LIBS_ROOT = os.path.join(PROJECT_ROOT, '..', '..', 'pylibs') 

sys.path.insert(0, os.path.join(PYTHON_LIBS_ROOT, 'oauth2')) 
sys.path.insert(0, os.path.join(PYTHON_LIBS_ROOT, 'httplib2')) 

#^     END OF PATHS SETTINGS       ^# 

(這是我的settings.py的一部分,這是具體的環境和不同開發計算機和服務器)

  • 也可以添加sys.path.insert語句您.wsgi文件在服務器上(如果使用mod_wsgi的),並與manage.py runserver命令測試你的manage.py文件
0

最常見的事情是,你要添加的錯誤路徑...比較你必須在你真的在Eclipse中添加的路徑在命令行中運行:

import sys 
print('\n'.join(sorted(sys.path))) 

和修復Eclipse中的路徑。