0

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

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

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

  1. 右键单击项目并选择属性
  2. 选择外部库选项卡
  3. 添加源文件夹(在我的虚拟环境中)或鸡蛋(也在那里)。

但是,在这两种情况下(对于 Messages 模块),我在执行以下操作时都会收到此错误syncdb:错误:没有名为 messages 的模块

我已经尝试重新启动 Eclipse,但仍然没有运气。

4

2 回答 2

0

最常见的情况是您添加了错误的路径...通过运行将命令行中的内容与您在 Eclipse 中实际添加的路径进行比较:

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

并修复 Eclipse 中的路径。

于 2012-06-30T12:32:48.240 回答
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 应用程序位于 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 runserver 进行测试的 manage.py 文件
于 2012-06-28T18:56:40.077 回答