Django的Eclipse配置设置找不到外部库

时间:2012-06-28 15:48:07

标签: python django eclipse

我正在将我的Django项目开发环境迁移到Eclipse。

我让Python和Django在Eclipse中正常工作。但是,当我尝试添加外部库时,项目找不到它们。

以下是我添加所需模块的方法:

  1. 右键单击项目并选择“属性”
  2. 选择“外部库”选项卡
  3. 添加源文件夹(在我的虚拟环境中)或鸡蛋(也在那里)。
  4. 但是,在我这样做的两种情况下(对于Messages模块),我在执行syncdb时遇到此错误: 错误:没有名为message的模块

    我尝试重启Eclipse,但仍然没有运气。

2 个答案:

答案 0 :(得分: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没有把它们放到你的python路径中时它们必须在你的python路径中路径自动。

  • 为了确保django应用程序处于PATH状态,我在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文件以使用manage.py runserver进行测试

答案 1 :(得分:0)

最常见的事情是你添加了错误的路径...通过运行命令行比较你在Eclipse中真正添加的路径:

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

并修复Eclipse中的路径。