我尝试遵循这个教程:http://tutorial.djangogirls.org/en/index.html
我已经准备好了:http://tutorial.djangogirls.org/en/deploy/README.html
我想通过git把它推到heroku上,我熟悉git,但不熟悉heroku,虽然我知道python,但我是一个django初学者。
当我执行命令git push heroku master
时,我得到了这个输出,它阻止了应用程序的部署。
下面是我收到的错误:
(myvenv) $> git push heroku master
Counting objects: 19, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (16/16), done.
Writing objects: 100% (19/19), 3.81 KiB | 0 bytes/s, done.
Total 19 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing runtime (python-3.4.1)
remote: -----> Installing dependencies with pip
remote: Exception:
remote: Traceback (most recent call last):
remote: File "/app/.heroku/python/lib/python3.4/site-packages/pip- 6.0.6-py3.4.egg/pip/basecommand.py", lin
, in main
remote: status = self.run(options, args)
remote: File "/app/.heroku/python/lib/python3.4/site-packages/pip- 6.0.6-py3.4.egg/pip/commands/install.py"
e 321, in run
remote: finder=finder, options=options, session=session):
remote: File "/app/.heroku/python/lib/python3.4/site-packages/pip-6.0.6-py3.4.egg/pip/req/req_file.py", li
, in parse_requirements
remote: session=session,
remote: File "/app/.heroku/python/lib/python3.4/site-packages/pip- 6.0.6-py3.4.egg/pip/download.py", line 4
n get_file_content
remote: content = f.read()
remote: File "/app/.heroku/python/lib/python3.4/codecs.py", line 313, in decode
remote: (result, consumed) = self._buffer_decode(data, self.errors, final)
remote: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
remote:
remote:
remote: ! Push rejected, failed to compile Python app
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to chsdjangoblog.
remote:
To https://git.heroku.com/chsdjangoblog.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/chsdjangoblog.git'
有人知道为什么会这样吗?heroku看起来很好用,有没有更好的替代品/heroku的最佳用例是什么?我真的只是想解决这个问题,这样我就可以继续教程了。学习django一直是我的目标,因为我厌倦了Word Press和PHP开发,并且已经是一个很长时间的Python爱好者。
在该错误之后,当我尝试下一步时:heroku ps:scale web=1
我得到以下输出:
Scaling dynos... failed
! App mus tbe deployed before dynos can be scaled.
先谢了。
编辑:
下面是我的要求. txt:
Django==1.8
dj-database-url==0.3.0
gunicorn==19.3.0
heroku==0.1.4
python-dateutil==1.5
requests==2.6.0
whitenoise==1.0.6
psycopg2==2.5.4`
我试过保存为UTF-8,ANSI,UTF-16。所有的都是相同的消息。我甚至没有复制粘贴就重写了它。为什么我的第一个字节总是0xff而不管编码?heroku期望什么?有方法/工具来检查txt文件中的字节吗?
3条答案
按热度按时间mitkmikd1#
对于这个问题的其他参与者来说,您的
requirements.txt
文件似乎是以UTF-16小端编码的。0xFF
是UTF-16-LE的字节顺序标记的第一个字符,第二个字符是0xFE
。追溯指出第一个字符是位置0中的0xFF,在Windows中,文件通常存储为UTF-16格式并带有BOM。尝试将
requirements.txt
文件保存为UTF-8 * 格式(不带 * BOM),或者保存为ASCII格式。无法在记事本中工作,因此请改用Python 3:
requirements_new.txt
现在将被编码为UTF-8,应该可以工作(它可能最终会成为ASCII)。请注意,这是基于其他人的评论和回答,他们认为有问题的文件是
requirements.txt
。qzlgjiam2#
请看这个答案:Deploying Django/Python 3.4 to Heroku
pip
崩溃,因为您的requirements.txt
文件编码错误。请以UTF-8 ANSI编码保存该文件。gc0ot86w3#
我修复了它,这个问题似乎只发生在requirements.txt是在windows上生成的,不管我选择了什么编码。我在Linux上用ASCII生成了这个文件,它工作了。然后我把这个文件转移到windows上,它也工作了。因此问题一定是requirements.txt编码,就像在注解中提到的那样。然而,正确的编码似乎是ASCII。