我是Django新手,我创建了一个应用程序,并希望使用Heroku部署它。但是,当我git push heroku master
(我跟随Heroku的开始)时,这就是我得到的:
Counting objects: 36, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (33/33), done.
Writing objects: 100% (36/36), 19.22 KiB | 0 bytes/s, done.
Total 36 (delta 3), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/python.tgz
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote: ! Push failed
remote: Verifying deploy....
remote:
remote: ! Push rejected to dry-waters-63931.
remote:
To https://git.heroku.com/dry-waters-63931.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/dry-waters-63931.git'
我的根目录:
├── assignment
├── household_management (django app)
├── templates
|
├── db.sqlite3
|
├── manage.py
如果你们能提供帮助,我将非常感激。我现在真的很沮丧......
答案 0 :(得分:30)
您需要添加一个requirements.txt
文件,其中包含运行您的应用程序所需的所有模块。
您可以执行pip freeze > requirements.txt
将所有模块冻结到文件中。如果你使用的是virtualenv,我只建议这样做,否则它会添加你所有的模块。
无论如何,只需准确确定应用程序所需的模块,并创建一个名为requirements.txt
的文件并将其放在应用程序目录中。
需求文件的语法如下:
package name == version #
package name == version #
package name == version #
注意:指定某个版本号是可选的。
以下是一个示例需求文件(取自this教程):
Flask==0.11
Jinja2==2.8
gunicorn==19.6.0
不要忘记提交你的requirements.txt
答案 1 :(得分:1)
您只需要在主应用程序文件夹中添加 requirements.txt 。它包含我们正在处理的软件包,如django,flask。
答案 2 :(得分:1)
以下是您可以逐步解决上述问题的步骤:
在您的应用文件夹中创建一个requirements.txt文件。
从同一文件夹中运行命令pip Frozen> requirements.txt。
现在提交更改。
git add。
git commit -m“已添加需求”
git push heroku master
在这里,我要抓住的是:我这样做是在不添加任何模块的情况下完成的,因为pip还可以自动从本地代码库安装依赖项。当我检查我的require.txt文件时运行命令后,已经有自动添加的模块。
注意:如果您没有遇到这种情况,可以按照哈里森在回答中所说的那样手动进行。
仅当您遇到与我的情况类似的错误时,才出现关于conda ==的错误。找不到版本。由于模块是根据我的本地代码库自动添加的,因此Conda版本安装在我的本地计算机上,这就是为什么将其自动添加到我的require.txt文件中的原因。您所需要做的就是将其从requirements.txt文件中删除。
再次提交更改。
这种想法可能会帮助一些遇到类似错误的人。