- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
几天来,我一直在努力使用 Amazon Linux 2 Python 3.7 平台将我的 Django 应用程序部署到 Elastic Beanstalk。
管理部署应用程序后,我无法运行命令 python3 manage.py collectstatic --noinput
为了让 nginx 能够提供静态文件,从而拥有 Django 管理页面所需的所有 CSS 样式。
现在我在 .ebextensions 目录中有一个名为“static.config”的文件,其中包含以下 YAML 代码:
container_commands:
collectstatic:
command: |
source $PYTHONPATH/activate
python3 manage.py collectstatic --noinput
我添加了行
source $PYTHONPATH/activate
在第一次尝试失败后
this answer .
option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: "backend_project.settings"
"PYTHONPATH": "/var/app/current:$PYTHONPATH"
"aws:elasticbeanstalk:container:python":
WSGIPath: backend_project.wsgi:application
NumProcesses: 3
NumThreads: 20
"aws:elasticbeanstalk:environment:proxy:staticfiles":
"/static/": "static/"
这是我在 cfn-init.log 中看到的堆栈跟踪:
2020-11-04 14:06:29,217 [ERROR] Command collectstatic (source $PYTHONPATH/activate
python3 manage.py collectstatic --noinput ) failed
2020-11-04 14:06:29,218 [ERROR] Error encountered during build of postbuild_1_eduvaluer_api: Command collectstatic failed
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 542, in run_config
CloudFormationCarpenter(config, self._auth_config).build(worklog)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 260, in build
changes['commands'] = CommandTool().apply(self._config.commands)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/command_tool.py", line 117, in apply
raise ToolError(u"Command %s failed" % name)
ToolError: Command collectstatic failed
2020-11-04 14:06:29,218 [ERROR] -----------------------BUILD FAILED!------------------------
2020-11-04 14:06:29,218 [ERROR] Unhandled exception during build: Command collectstatic failed
Traceback (most recent call last):
File "/opt/aws/bin/cfn-init", line 171, in <module>
worklog.build(metadata, configSets)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 129, in build
Contractor(metadata).build(configSets, self)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 530, in build
self.run_config(config, worklog)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 542, in run_config
CloudFormationCarpenter(config, self._auth_config).build(worklog)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/construction.py", line 260, in build
changes['commands'] = CommandTool().apply(self._config.commands)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/command_tool.py", line 117, in apply
raise ToolError(u"Command %s failed" % name)
ToolError: Command collectstatic failed
阅读此跟踪时,我想到的一个问题是:为什么要使用 python 2 来执行任何脚本?
env
要查看服务器的环境变量,PYTHONPATH 不是其中之一。python3 manage.py collectstatic --noinput
命令。这是我得到的:During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 23, in <module>
main()
File "manage.py", line 19, in main
execute_from_command_line(sys.argv)
File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/django/core/management/__init__.py", line 231, in fetch_command
settings.INSTALLED_APPS
File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/django/conf/__init__.py", line 76, in __getattr__
self._setup(name)
File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/django/conf/__init__.py", line 63, in _setup
self._wrapped = Settings(settings_module)
File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/django/conf/__init__.py", line 142, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib64/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/var/app/current/backend_project/settings.py", line 45, in <module>
SECRET_KEY =env("SECRET_KEY")
File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/environ/environ.py", line 123, in __call__
return self.get_value(var, cast=cast, default=default, parse_default=parse_default)
File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/environ/environ.py", line 277, in get_value
raise ImproperlyConfigured(error_msg)
django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable
我在运行命令之前激活了虚拟环境,我知道环境变量(包括 SECRET_KEY)已加载,因为当我运行命令时
/opt/elasticbeanstalk/bin/get-config environment
所有这些都打印在控制台上。这越来越令人困惑。
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
据我了解,这应该表明 Django 在静态目录中查找静态文件。也许我理解错了,问题就在这里。
最佳答案
嘿,我刚刚使用静态文件成功部署了我的 django 应用程序。这是我的配置的样子。
django.config
container_commands:
01_collectstatic:
command: "source $PYTHONPATH/activate && python manage.py collectstatic --noinput"
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: appname.wsgi:application
aws:elasticbeanstalk:environment:proxy:staticfiles:
/static: static
设置.py
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = 'static'
环境变量适用于 ebs 环境,而不是我认为的 EC2 实例本身。当我通过 ssh 进入 EC2 实例时,我也没有看到 PYTHONPATH,但我确实在 AWS 控制台上的 Environment > Configuration > Software 的 ebs 环境的环境变量中看到了它
/var/app/venv/staging-LQM1lest/bin
这是我的文件结构:
┣ .ebextensions/
┃ ┗ django.config
┣ .elasticbeanstalk/
┃ ┗ config.yml
┣ appname/
关于python - Django collectstatic 命令在 AWS Elastic Beanstalk Amazon Linux 2 Python 3 平台中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64681889/
我不知道我是否混淆了 collectstatic 的目的.这是我的设置模块 : # BASE_DIR is the location of my django project folder STATI
这有效: ./manage.py collectstatic -i bower_components 这不会: ./manage.py collectstatic -i bower_component
我试图从 collectstatic 的静态文件夹中排除一些文件和目录命令。 static -sample -css -dest -vendor index.cs
我正在尝试将应用程序升级到 Django 1.11,但遇到 collectstatic 问题。 旧版本: django 1.8.17 django-storages 1.5.1 新版本: django
我是 django 的新手!当我使用命令 python manage.py collectstatic 我得到这个错误 django.core.exceptions.ImproperlyConfigu
我有一个带有scraper 的 Django 网站,它每天都下载图片,所以我想用 crontab 自动执行 collectstatic我试过这个添加到 crontab.cr yes | python2
尝试收集我的静态文件,因为我很快就会部署我的网站。接收: Unknown command: 'collectstatic' 查看 django-admin 帮助后我收到此警告: (error: Req
只是为了解决这个问题,如果可能的话,我想这样做而不将它们全部嵌套在应用程序的静态文件夹中的应用程序名称的目录中,这感觉是多余的。如果这是唯一的方式,那么这就是生活。 我在用: STATICFILES_
有没有办法让python manage.py collectstatic找到更新的静态文件?目前,它正在正确搜索STATICFILES_DIRS并找到我的静态文件的位置,但它只上传新文件。如果我修改静
在我的 deb postinst 文件中: PYTHON=/usr/bin/python PYTHON_VERSION=`$PYTHON -c 'import sys; print sys.versi
我有 Django 设置来收集我的静态文件并使用 django-storages 将它们复制到 S3 中,当我显式运行时这就像一个魅力 heroku run python manage.py coll
每次推送到 Heroku 时,我都会运行 collectstatic --noinput。新文件被复制,但有更改的旧文件不会被覆盖。但是,删除文件并推送到 heroku 会按预期替换该特定文件。 如何
我正在使用 Django 1.3.1 和 contrib.collectstatic 应用程序来管理我的静态文件。 我的项目结构是 myproject - settings.py -
在 django 1.7 中,collectstatic 为我抛出一个异常: OSError: [Errno 2] No such file or directory: '/static' 我已经执行
我正在尝试在我的 Ubuntu 服务器中运行以下命令: ./manage.py collectstatic -v 0 --noinput 我收到此错误消息: Traceback (most recen
我有一堆正在使用 collectstatic 处理的 css/js 文件。它们在我的 staticfiles 目录中成功创建,并附加了数字。 (env)zain@gandalf ~/projects/
我在 GitHub 上有一个基于 Django 的项目,我希望每个人都能够使用一键部署按钮进行部署。它不使用 django.contrib.staticfiles 应用。 我在项目的根目录下有以下 a
在 Django 中,约定是将应用程序特定的所有静态文件(即 css、js)放入名为 static 的文件夹中。所以结构看起来像这样: mysite/ manage.py mysite
当我给出命令“python manage.py collectstatic”时,出现以下问题 "0 static files copied to '/home/leonard368a/leonard3
我正在使用 Django3,目前我的 makefile 中有以下用于“构建”的命令 python3 manage.py collectstatic 为了使用管道自动化我的构建过程,我想摆脱询问的提示
我是一名优秀的程序员,十分优秀!