1

我希望这是一个非常简单的问题——但由于我使用的是Divio Django cms 服务这一事实,可能会变得更复杂一些。

对于所有关心这些事情的蛋头,我正在使用 Python 2.7.11 和 Django 1.11.1。

基本上我的应用程序找不到 Markdown 包:

import markdown

或者

from markdown import markdown

或者

from markdown import *

甚至(这越来越花哨)

try:
    from markdown import markdown
except ImportError:
    class MarkdownNotFound(Exception):
        def __str__(self):
            return "Uuuugh, why isn't this simple thing working"
    raise MarkdownNotFound

所有都会给出一般错误:

ImportError: No module named markdown

(显然,所有的措辞都略有不同)。

Uuuugh,为什么这个简单的事情不起作用?

pip installed在奶牛回家之前,我已经降价了……所以它就在那里。我的 Django 项目找不到。

import datetime

工作没有问题。我是否缺少一些非常简单的东西,或者,如果没有,是否有任何替代 Django 中的 markdown 模块的替代品,它们实际上可以从导入中工作?

这是完整的追溯:

Traceback (most recent call last):
  File "manage.py", line 7, in <module>
    startup.manage(path=os.path.dirname(os.path.abspath(__file__)))
  File "/virtualenv/lib/python2.7/site-packages/aldryn_django/startup.py", line 11, in manage
    utility.execute()
  File "/virtualenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 328, in execute
    django.setup()
  File "/virtualenv/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/virtualenv/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/virtualenv/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/app/forum/models.py", line 9, in <module>
    import markdown
ImportError: No module named markdown
4

1 回答 1

0

Divio Cloud Django 项目在 Docker 容器内运行,并且该项目必须能够在需要时随时重新创建自己。因此,与其简单地在其中安装诸如Markdown之类的软件包,您还必须提供说明,以便它知道在下次必须重建时安装 Markdown。

为此,请将其列在项目requirements.in文件中:

markdown==2.6.8

(显然,选择适当的降价版本。)

有效的原因import datetime是 datetime 已经安装在项目中。

于 2017-05-14T16:12:57.373 回答