部署到 pythonanywhere 时,我的 Django 应用程序需要进行哪些更改?错误指向无处
What changes are needed to my django app when deploying to pythonanywhere? error points to nowhere
使用 S3 作为存储部署我的 django 网站,运行在本地到 pythonanywhere 时会出现一个奇怪的错误,我无法google 解决方案:
"TypeError: a bytes-like object is required, not 'str'"
我做错了什么?
我尝试将我的环境变量从 settings.env(aws 密钥、secret_key 等)中移除,并直接在我的 settings.py 应用程序中设置它们。 + 我能找到的每一个建议,但它仍然是一样的:(
这是我的 /var/www/username_pythonanywhere_com_wsgi.py:
# +++++++++++ DJANGO +++++++++++
# To use your own Django app use code like this:
import os
import sys
from dotenv import load_dotenv
project_folder = os.path.expanduser('~/portfolio_pa/WEB') # adjust as appropriate
load_dotenv(os.path.join(project_folder, 'settings.env'))
# assuming your Django settings file is at '/home/myusername/mysite/mysite/settings.py'
path = '/home/corebots/portfolio_pa'
if path not in sys.path:
sys.path.insert(0, path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'WEB.settings'
## Uncomment the lines below depending on your Django version
###### then, for Django >=1.5:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
###### or, for older Django <=1.4
#import django.core.handlers.wsgi
#application = django.core.handlers.wsgi.WSGIHandler()
我希望该网站 运行 像在本地一样正常。
Boto 库没有很好的 Python3 支持。这个特殊问题在 boto bugtracker 中是已知的:https://github.com/boto/boto/issues/3837
解决此问题的最佳方法是使用 boto3,它具有不错的 Python3 支持,并且通常是 Python.
最受支持的 AWS SDK
它在您的本地计算机上工作而在生产环境中不起作用的原因是 pythonanywhere 设置似乎使用代理触发此不兼容的 boto 代码。看实际调用代码:https://github.com/boto/boto/blob/master/boto/connection.py#L747
你的错误回溯证实了这一点。
不幸的是,我不熟悉 django-photologue
,但简单看一下并不表明它强烈依赖于 boto3。也许我错了。
我仍然认为最好的方法是使用 boto3。作为备份策略,您可以使用针对此问题的修复程序 fork boto 并安装它,而不是来自 PyPI 的官方版本:https://github.com/boto/boto/pull/3699
使用 S3 作为存储部署我的 django 网站,运行在本地到 pythonanywhere 时会出现一个奇怪的错误,我无法google 解决方案:
"TypeError: a bytes-like object is required, not 'str'"
我做错了什么?
我尝试将我的环境变量从 settings.env(aws 密钥、secret_key 等)中移除,并直接在我的 settings.py 应用程序中设置它们。 + 我能找到的每一个建议,但它仍然是一样的:(
这是我的 /var/www/username_pythonanywhere_com_wsgi.py:
# +++++++++++ DJANGO +++++++++++
# To use your own Django app use code like this:
import os
import sys
from dotenv import load_dotenv
project_folder = os.path.expanduser('~/portfolio_pa/WEB') # adjust as appropriate
load_dotenv(os.path.join(project_folder, 'settings.env'))
# assuming your Django settings file is at '/home/myusername/mysite/mysite/settings.py'
path = '/home/corebots/portfolio_pa'
if path not in sys.path:
sys.path.insert(0, path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'WEB.settings'
## Uncomment the lines below depending on your Django version
###### then, for Django >=1.5:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
###### or, for older Django <=1.4
#import django.core.handlers.wsgi
#application = django.core.handlers.wsgi.WSGIHandler()
我希望该网站 运行 像在本地一样正常。
Boto 库没有很好的 Python3 支持。这个特殊问题在 boto bugtracker 中是已知的:https://github.com/boto/boto/issues/3837
解决此问题的最佳方法是使用 boto3,它具有不错的 Python3 支持,并且通常是 Python.
最受支持的 AWS SDK它在您的本地计算机上工作而在生产环境中不起作用的原因是 pythonanywhere 设置似乎使用代理触发此不兼容的 boto 代码。看实际调用代码:https://github.com/boto/boto/blob/master/boto/connection.py#L747
你的错误回溯证实了这一点。
不幸的是,我不熟悉 django-photologue
,但简单看一下并不表明它强烈依赖于 boto3。也许我错了。
我仍然认为最好的方法是使用 boto3。作为备份策略,您可以使用针对此问题的修复程序 fork boto 并安装它,而不是来自 PyPI 的官方版本:https://github.com/boto/boto/pull/3699