Python 试图部署到heroku,但一直被拒绝
我正在尝试在heroku上部署,这似乎是自编程以来我处理过的最复杂的问题。我得到一个错误,我没有Procfile,我有。它只命名为Procfile。不是ProcFile或ProcFile.txt。我跑完之后Python 试图部署到heroku,但一直被拒绝,python,git,heroku,Python,Git,Heroku,我正在尝试在heroku上部署,这似乎是自编程以来我处理过的最复杂的问题。我得到一个错误,我没有Procfile,我有。它只命名为Procfile。不是ProcFile或ProcFile.txt。我跑完之后 git push heroku master 我得到以下错误 Counting objects: 8524, done. Delta compression using up to 4 threads. Compressing objects: 100% (7522/7
git push heroku master
我得到以下错误
Counting objects: 8524, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7522/7522), done.
Writing objects: 100% (8524/8524), 14.00 MiB | 2.67 MiB/s, done.
Total 8524 (delta 2214), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: ! Warning: Your application is missing a Procfile. This file tells Heroku how to run your application.
remote: ! Learn more: https://devcenter.heroku.com/articles/procfile
remote: -----> Installing python-2.7.11
remote: $ pip install -r requirements.txt
remote: Collecting beautifulsoup4==4.4.1 (from -r requirements.txt (line 1))
remote: Downloading beautifulsoup4-4.4.1-py2-none-any.whl (81kB)
remote: Collecting dj-database-url==0.4.0 (from -r requirements.txt (line 2))
remote: Downloading dj-database-url-0.4.0.tar.gz
remote: Collecting dj-static==0.0.6 (from -r requirements.txt (line 3))
remote: Downloading dj-static-0.0.6.tar.gz
remote: Collecting Django==1.9.4 (from -r requirements.txt (line 4))
remote: Downloading Django-1.9.4-py2.py3-none-any.whl (6.6MB)
remote: Collecting django-crispy-forms==1.6.0 (from -r requirements.txt (line 5))
remote: Downloading django_crispy_forms-1.6.0-py2-none-any.whl (178kB)
remote: Collecting django-haystack==2.4.1 (from -r requirements.txt (line 6))
remote: Downloading django_haystack-2.4.1-py2-none-any.whl (95kB)
remote: Collecting django-taggit==0.18.0 (from -r requirements.txt (line 7))
remote: Downloading django_taggit-0.18.0-py2.py3-none-any.whl
remote: Collecting django-toolbelt==0.0.1 (from -r requirements.txt (line 8))
remote: Downloading django-toolbelt-0.0.1.tar.gz
remote: Collecting gunicorn==19.4.5 (from -r requirements.txt (line 9))
remote: Downloading gunicorn-19.4.5-py2.py3-none-any.whl (112kB)
remote: Collecting Pillow==3.1.1 (from -r requirements.txt (line 10))
remote: Downloading Pillow-3.1.1.tar.gz (10.1MB)
remote: Collecting psycopg2==2.6.1 (from -r requirements.txt (line 11))
remote: Downloading psycopg2-2.6.1.tar.gz (371kB)
remote: Collecting pysolr==3.4.0 (from -r requirements.txt (line 12))
remote: Downloading pysolr-3.4.0-py2.py3-none-any.whl
remote: Collecting pytz==2016.1 (from -r requirements.txt (line 13))
remote: Downloading pytz-2016.1-py2.py3-none-any.whl (476kB)
remote: Collecting requests==2.9.1 (from -r requirements.txt (line 14))
remote: Downloading requests-2.9.1-py2.py3-none-any.whl (501kB)
remote: Collecting static3==0.6.1 (from -r requirements.txt (line 15))
remote: Downloading static3-0.6.1.tar.gz
remote: Collecting whitenoise==3.0 (from -r requirements.txt (line 16))
remote: Downloading whitenoise-3.0-py2.py3-none-any.whl
remote: Installing collected packages: beautifulsoup4, dj-database-url, static3, dj-static, Django, django-crispy-forms, django-haystack, django-taggit, psycopg2, gunicorn, django-toolbelt, Pillow, requests, pysolr, pytz, whitenoise
remote: Running setup.py install for dj-database-url: started
remote: Running setup.py install for dj-database-url: finished with status 'done'
remote: Running setup.py install for static3: started
remote: Running setup.py install for static3: finished with status 'done'
remote: Running setup.py install for dj-static: started
remote: Running setup.py install for dj-static: finished with status 'done'
remote: Running setup.py install for psycopg2: started
remote: Running setup.py install for psycopg2: finished with status 'done'
remote: Running setup.py install for django-toolbelt: started
remote: Running setup.py install for django-toolbelt: finished with status 'done'
remote: Running setup.py install for Pillow: started
remote: Running setup.py install for Pillow: finished with status 'done'
remote: Successfully installed Django-1.9.4 Pillow-3.1.1 beautifulsoup4-4.4.1 dj-database-url-0.4.0 dj-static-0.0.6 django-crispy-forms-1.6.0 django-haystack-2.4.1 django-taggit-0.18.0 django-toolbelt-0.0.1 gunicorn-19.4.5 psycopg2-2.6.1 pysolr-3.4.0 pytz-2016.1 requests-2.9.1 static3-0.6.1 whitenoise-3.0
remote:
remote: $ python mysite/manage.py collectstatic --noinput
remote: Traceback (most recent call last):
remote: File "mysite/manage.py", line 10, in <module>
remote: execute_from_command_line(sys.argv)
remote: File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
remote: utility.execute()
remote: File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute
remote: self.fetch_command(subcommand).run_from_argv(self.argv)
remote: File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
remote: self.execute(*args, **cmd_options)
remote: File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
remote: output = self.handle(*args, **options)
remote: File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 176, in handle
remote: collected = self.collect()
remote: File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 98, in collect
remote: for path, storage in finder.list(self.ignore_patterns):
remote: File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 112, in list
remote: for path in utils.get_files(storage, ignore_patterns):
remote: File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/utils.py", line 28, in get_files
remote: directories, files = storage.listdir(location)
remote: File "/app/.heroku/python/lib/python2.7/site-packages/django/core/files/storage.py", line 299, in listdir
remote: for entry in os.listdir(path):
remote: OSError: [Errno 2] No such file or directory: '/app/mysite/mysite/static'
remote:
remote: ! Error while running '$ python mysite/manage.py collectstatic --noinput'.
remote: See traceback above for details.
remote:
remote: You may need to update application code to resolve this error.
remote: Or, you can disable collectstatic for this application:
remote:
remote: $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote: https://devcenter.heroku.com/articles/django-assets
remote:
remote: ! Push rejected, failed to compile Python app
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to alt-vera.
编辑这是我的文件
web: gunicorn mysite.wsgi:application --log-file -
编辑:在我一遍又一遍地做同样的事情之后,它起了作用
但现在我得到了一个不同的错误消息
OSError: [Errno 2] No such file or directory: '/app/mysite/mysite/static'
remote:
remote: ! Error while running '$ python mysite/manage.py collectstatic --noinput'.
remote: See traceback above for details.
remote:
remote: You may need to update application code to resolve this error.
remote: Or, you can disable collectstatic for this application:
remote:
remote: $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote: https://devcenter.heroku.com/articles/django-assets
remote:
remote: ! Push rejected, failed to compile Python app
remote:
remote: Verifying deploy....
remote:
remote: ! Push rejected to alt-vera.
remote:
To https://git.heroku.com/alt-vera.git
您的应用程序缺少程序文件请添加它,然后重试。
寻求帮助
Procfile示例
web:python manage.py runserver
web: gunicorn your-app-name.wsgi --log-file -
heroku ps:scale web=1
来这相当晚,所以不确定这是否会有帮助。我发现你的问题是因为我遇到了同样的问题:我使用了Heroku提供的Django模板,并且在项目的根目录中肯定有一个Procfile 您在哪个文件夹中执行了
$git init
我的错误是我在桌面上创建了一个文件夹(“WEB_代码”)来保存这个项目,并将这个文件夹初始化为git repo。这意味着Django应用程序安装在WEB_CODE/myapp的子文件夹中,因此Procfile位于myapp的根目录下,而不是git repo的头目录
我放弃了这个,重新开始。我现在有了一个新的文件夹来保存所有东西(假设它叫做“APP_CODE”),一旦我安装了Heroku提供的Django应用程序,我就把从这个安装中创建的子目录作为git repo的头(例如:APP_CODE/myapp是repo,而不是APP_CODE)。因此,Procfile就位于项目的根目录中
我将更改提交到我的个人github,然后我重新尝试了
$heroku create
和$git push heroku master
命令,它们工作得很好。很抱歉,如果迟到了,但我最近在谷歌搜索两个小时后发现了它
问题是我用小写的p重命名了文件“procfile”。所以我用大写的P将它重命名为“Procfile”。然后我重新创建了git repo,然后将它们添加到stage中,然后提交它们。在那之后,我把我的分支(在我的案例中是“大师”)推给了heroku,它对我很有效
我只是想说,万一有人在同一个错误中被绊倒。我遇到了这个令人沮丧的问题,但我终于让procfile正常工作了。首先,确保您将其命名为“Procfile”,而不使用“.exe”或“.txt”或“.bat”。只是“Procfile”。对于Django,我在Procfile中自己的行中包含了以下内容:
web:python manage.py runserver
web: gunicorn app-name.wsgi
heroku ps:scale web=1
然后,即使您以前已经这样做过,您也需要使用cmd将cd刻录到项目所在的文件中,然后输入以下命令并在每个命令后单击:
pip freeze > requirements.txt
git init
git add .
git status
git commit -m "Initial Commit"
git push heroku master
heroku open
这就是我的工作原理。我刚刚遇到这个问题,请使用命令创建Procfile,而不是通过重命名已创建的文件:
echo web:..etc>Procfile (without spaces)
你想收集静态资产吗?谢谢你的回复。我只是尝试按照说明进行部署。您需要创建一个配置文件(称之为
profile
),然后使用git add Procfile
将其添加到存储库中,然后使用git commit-m“adding Procfile”
提交更改,最后,git push heroku master
感谢您的响应。我的Procfile与My requirements.txt位于同一目录中。那是我的issue@losee这不是问题。我添加了procfile的示例,请看一看。这仍然不起作用。我应该有一个结尾有句号的Procfile吗?就像这个文件。我不明白为什么它不读我的procfile@losee您是如何通过命令行或网站部署它的?通过命令行。我简直是束手无策。我删除了文件创建它使用触摸和回声基于其他帖子关于这个主题,什么也没有。除了heroku之外,你还有什么更容易的吗?或者就部署而言都是这样吗?这太疯狂了
echo web:..etc>Procfile (without spaces)