1

我正在尝试拿起一个旧的 Django 项目,我的直接目标是看看我可以在开发服务器上的计算机上运行什么。我得到:

内殿 ~/pragmatometer $ python manage.py runserver
回溯(最近一次通话最后):
  文件“manage.py”,第 10 行,在
    execute_from_command_line(sys.argv)
  文件“/Library/Python/2.7/site-packages/django/core/management/__init__.py”,第 399 行,在 execute_from_command_line
    实用程序.execute()
  文件“/Library/Python/2.7/site-packages/django/core/management/__init__.py”,第392行,在执行
    self.fetch_command(子命令).run_from_argv(self.argv)
  文件“/Library/Python/2.7/site-packages/django/core/management/__init__.py”,第 261 行,在 fetch_command
    命令 = get_commands()
  文件“/Library/Python/2.7/site-packages/django/core/management/__init__.py”,第 107 行,在 get_commands
    应用程序 = settings.INSTALLED_APPS
  文件“/Library/Python/2.7/site-packages/django/conf/__init__.py”,第 54 行,在 __getattr__
    self._setup(名称)
  _setup 中的文件“/Library/Python/2.7/site-packages/django/conf/__init__.py”,第 49 行
    self._wrapped = 设置(settings_module)
  文件“/Library/Python/2.7/site-packages/django/conf/__init__.py”,第 132 行,在 __init__
    % (self.SETTINGS_MODULE, e)
ImportError:无法导入设置'pragmatometer.settings'(它在sys.path上吗?设置文件中是否存在导入错误?):没有名为pragmatometer.settings的模块

这是一些命令行输出:

内殿 ~/pragmatometer $ /bin/pwd
/用户/乔纳森/实用表
内殿 ~/pragmatometer $ echo $PYTHONPATH
/用户/乔纳森
内殿 ~/pragmatometer $ python
Python 2.7.10(默认,2015 年 7 月 14 日,19:46:27)
[GCC 4.2.1 兼容 Apple LLVM 6.0 (clang-600.0.39)] 在 darwin
输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。
>>> 进口语用表
回溯(最近一次通话最后):
  文件“”,第 1 行,在
ImportError:没有名为 pragmatometer 的模块
>>> 导入 pragmatometer.settings
回溯(最近一次通话最后):
  文件“”,第 1 行,在
ImportError:没有名为 pragmatometer.settings 的模块
>>>

我应该做什么我不是?(或者,因为这是一个较旧的项目,我应该从一个新的项目开始吗?)

谢谢,

4

3 回答 3

0

每个 django 项目都带有一个 settings.py 文件,django 将拒绝运行或加载模型,直到加载该 settings.py 文件。

settings.py 文件需要在一个模块中,并且是您当前 PYTHONPATH 和 env 的一部分。变量 DJANGO_SETTINGS_MODULE 应该设置为它。

例如:

# assuming your file is under /myproject/mywebsite/settings.py
export PYTHONPATH=/myproject/
export DJANGO_SETTINGS_MODULE=mywebsite.settings
于 2015-09-02T20:07:56.710 回答
0

一个 Django 项目通常看起来像这样(我认为从 Django 1.4 及更高版本开始)。

myproject
    myproject
        __init__.py
        settings.py
    app1
    app2

你可以在网上四处寻找 这方面的例子和变体。

请注意,顶级myproject目录下有一个包含设置的目录myproject

你的看起来像这样吗?

还是您最初的目标是使用不同布局的旧版本 Django?

如果您尝试这样做:

PYTHONPATH=/Users/jonathan python
import pragmatometer

就像在您的第二个代码块中一样,它将被/Users/jonathan视为 Python 包并查找/Users/jonathan/__init__.py可能不存在的/Users/jonathan/pragmatometer/settings.py.

于 2015-09-02T20:11:42.777 回答
0

我找到了罪魁祸首,或者至少是罪魁祸首。我已经(在我的 .bashrc 中)省略了“export”,现在我又遇到了另一个问题。

于 2015-09-02T20:21:17.560 回答