【问题标题】:ModuleNotFoundError: No module named 'jinja2' during deployment of django project on herokuModuleNotFoundError:在heroku上部署django项目期间没有名为“jinja2”的模块
【发布时间】:2021-03-26 13:27:32
【问题描述】:

好吧,我正在尝试部署我的第一个 django 应用程序并收到错误:ModuleNotFoundError: No module named 'jinja2'。我不知道金贾是从哪里来的。在我的需求文件中没有神社。告诉我你是否知道如何解决它。我会非常感谢你。

引用:

remote: -----> $ python manage.py collectstatic --noinput
remote:        Traceback (most recent call last):
remote:          File "manage.py", line 21, in <module>
remote:            main()
remote:          File "manage.py", line 17, in main
remote:            execute_from_command_line(sys.argv)
remote:          File "/app/.heroku/python/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
remote:            utility.execute()
remote:          File "/app/.heroku/python/lib/python3.8/site-packages/django/core/management/__init__.py", line 377, in execute
remote:            django.setup()
remote:          File "/app/.heroku/python/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
remote:            apps.populate(settings.INSTALLED_APPS)
remote:          File "/app/.heroku/python/lib/python3.8/site-packages/django/apps/registry.py", line 91, in populate
remote:            app_config = AppConfig.create(entry)
remote:          File "/app/.heroku/python/lib/python3.8/site-packages/django/apps/config.py", line 90, in create
remote:            module = import_module(entry)
remote:          File "/app/.heroku/python/lib/python3.8/importlib/__init__.py", line 127, in import_module
remote:            return _bootstrap._gcd_import(name[level:], package, level)
remote:          File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
remote:          File "<frozen importlib._bootstrap>", line 991, in _find_and_load
remote:          File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
remote:          File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
remote:          File "<frozen importlib._bootstrap_external>", line 783, in exec_module
remote:          File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
remote:          File "/app/.heroku/python/lib/python3.8/site-packages/knox/__init__.py", line 2, in <module>
remote:            from . import cli  # noqa: F401
remote:          File "/app/.heroku/python/lib/python3.8/site-packages/knox/cli.py", line 25, in <module>
remote:            from .certificate import Cert  # noqa: F401
remote:          File "/app/.heroku/python/lib/python3.8/site-packages/knox/certificate/__init__.py", line 17, in <module>
remote:            from .cert import Cert  # noqa: F401
remote:          File "/app/.heroku/python/lib/python3.8/site-packages/knox/certificate/cert.py", line 32, in <module>
remote:            from jinja2 import Environment
remote:        ModuleNotFoundError: No module named 'jinja2'
remote:
remote:  !     Error while running '$ python manage.py collectstatic --noinput'.
remote:        See traceback above for details.
remote:
remote:        You may need to update application code to resolve this error.
remote:        Or, you can disable collectstatic for this application:
remote:
remote:           $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote:        https://devcenter.heroku.com/articles/django-assets
remote:
remote: ****** Collectstatic environment variables:
remote:
remote:        PYTHONUNBUFFERED=1
remote:        LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:
remote:        BPLOG_PREFIX=buildpack.python
remote:        LANG=en_US.UTF-8
remote:        STACK=heroku-18
remote:        OLDPWD=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136
remote:        C_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:
remote:        DYNO=run.8821
remote:        REQUEST_ID=59234ede-f580-ca06-2732-8ea4a1bd4a99
remote:        SOURCE_VERSION=20b61f6afb127dcb2ca25e8d46b2c3427f15a637
remote:        PWD=/tmp/build_d827bdd8
remote:        HOME=/app
remote:        PROFILE_PATH=/tmp/build_d827bdd8/.profile.d/python.sh
remote:        DEBUG_COLLECTSTATIC=1
remote:        LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:
remote:        CACHE_DIR=/tmp/codon/tmp/cache
remote:        EXPORT_PATH=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/bin/../export
remote:        BIN_DIR=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/bin
remote:        SHLVL=3
remote:        PYTHONPATH=.
remote:        CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:
remote:        BUILDPACK_LOG_FILE=/dev/fd/3
remote:        PATH=/app/.heroku/python/bin:/app/.heroku/vendor/bin::/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/vendor/
remote:        ENV_DIR=/tmp/d20201215-58-1fz9etp
remote:        BUILD_DIR=/tmp/build_d827bdd8
remote:        PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config:
remote:        PIP_NO_PYTHON_VERSION_WARNING=1
remote:        _=/usr/bin/env
remote:  !     Push rejected, failed to compile Python app.
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !       Push rejected to restlearnsignup.
remote:
To https://git.heroku.com/restlearnsignup.git
 ! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/restlearnsignup.git'

需求.txt

asgiref==3.3.1
astroid==2.4.1
certifi==2020.12.5
cffi==1.14.4
chardet==3.0.4
click==7.1.2
colorama==0.4.3
cryptography==3.3.1
decorator==4.4.2
Django==3.0.3
django-rest-knox==4.1.0
djangorestframework==3.12.2
dodgy==0.2.1
dynaconf==3.1.2
flake8==3.8.3
flake8-polyfill==1.0.2
gender-guesser==0.4.0
gunicorn==20.0.4
hvac==0.10.5
idna==2.10
isort==4.3.21
knox==0.1.11
lazy-object-proxy==1.4.3
loguru==0.5.3
mccabe==0.6.1
pep8-naming==0.10.0
prospector==1.3.0
pycodestyle==2.6.0
pycparser==2.20
pydocstyle==5.0.2
pyflakes==2.2.0
pylint==2.5.2
pylint-celery==0.3
pylint-django==2.0.15
pylint-flask==0.6
pylint-plugin-utils==0.6
pytz == 2020.4
PyYAML==5.3.1
requests==2.25.0
requirements-detector==0.7
setoptconf==0.2.0
shortuuid==1.0.1
six==1.15.0
snowballstemmer==2.0.0
sqlparse == 0.4.1 
toml==0.10.1
tqdm==v4.54.1
urllib3==1.26.2
validators==0.18.1
whitenoise==5.2.0
win32-setctime==1.0.3
wincertstore==0.2
wrapt==1.12.1

如果需要更多详细信息,请在评论中告诉我。我会用这些信息更新我的问题。

【问题讨论】:

  • knox 显然使用了Jinja2

标签: python django heroku deployment django-rest-framework


【解决方案1】:

根据回溯和knox project [GitHub]requirements.txt,knox 确实需要 Jinja:

cryptography==2.9.2
Jinja2==2.11.2
setuptools==46.1.3

因此,您应该将Jinja2 添加到requirements.txt

【讨论】:

    猜你喜欢
    • 2021-07-18
    • 2021-09-08
    • 1970-01-01
    • 2021-03-07
    • 2021-08-04
    • 2021-06-07
    • 2019-12-16
    • 1970-01-01
    • 2021-08-30
    相关资源
    最近更新 更多