gpt4 book ai didi

python - 将 Django/Python 3.4 部署到 Heroku

转载 作者:太空狗 更新时间:2023-10-30 01:15:14 25 4
gpt4 key购买 nike

我正在尝试使用 Django/Heroku 入门教程使用 Django/Heroku 部署我的第一个示例应用程序。

我的工具:Python 3.4 和 Windows 7 PowerShell。

我的挑战:部署到 Heroku 失败,我不确定原因。在我第一次“git push”时,我看到默认使用 python-2.7.0。然后,我在应用根目录中添加了一个 runtime.txt (python-3.4.0) 文件。

这是我运行 git push heroku master 时发生的事情

-----> Python app detected
-----> Preparing Python runtime (python-3.4.0)
-----> Installing Setuptools (2.1)
-----> Installing Pip (1.5.4)
-----> Installing dependencies using Pip (1.5.4)
Exception:
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.4/site-packages/pip-1.5.4-py3.4.egg/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/app/.heroku/python/lib/python3.4/site-packages/pip-1.5.4-py3.4.egg/pip/commands/install.py", line 262, in run
for req in parse_requirements(filename, finder=finder, options=options, session=session):
File "/app/.heroku/python/lib/python3.4/site-packages/pip-1.5.4-py3.4.egg/pip/req.py", line 1546, in parse_requirements
session=session,
File "/app/.heroku/python/lib/python3.4/site-packages/pip-1.5.4-py3.4.egg/pip/download.py", line 275, in get_file_content
content = f.read()
File "/app/.heroku/python/lib/python3.4/codecs.py", line 313, in decode

(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

Storing debug log for failure in /app/.pip/pip.log

! Push rejected, failed to compile Python app

这是我的 requirements.txt 文件的内容(使用 pip freeze > requirements.txt 创建)

Django==1.6.2
dj-database-url==0.3.0
dj-static==0.0.5
django-toolbelt==0.0.1
gunicorn==18.0
psycopg2==2.5.2
pystache==0.5.3
static==1.0.2

这是我的 Procfile(顺便说一句:gunicorn 似乎是 Unix“唯一”命令,不适用于 Windows;read here):

web: gunicorn mytodo.wsgi

Heroku 教程没有提到 setup.py 文件,but it seems that one is necessary ,所以我只是复制了一个模板....不是我的首选解决方案,但我不知道还能做什么。

setup(
name='mysite',
version='0.1.0',
install_requires=[], # Don't put anything here, just use requirements.txt
packages=['mysite'],
package_dir={'mysite': 'src/mysite'},
)

可能发生的事情:- unicode 错误消息可能源于 Procfile。我在网上某处读到它必须是 ASCII 文件,但我不确定如何声明它,因为 Procfile 没有文件结尾。- setup.py 文件错误。

感谢任何帮助。谢谢!

最佳答案

我在尝试将 Django 应用程序部署到 Windows 7 上的 Heroku 时遇到了这个确切的问题。原因是这样的:命令 pip freeze >requirements.txt 将文件编码为UTF-16 格式。 Heroku 期望 requirements.txt 是 ansi 编码的。

为了修复它,我在记事本中打开 requirements.txt,转到文件 -> 另存为,然后在再次保存之前将编码设置为 ANSI。在 git 提交新的 requirements.txt 之后,我能够运行 git push heroku master 并且它按预期工作。

关于python - 将 Django/Python 3.4 部署到 Heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com