`collectstatic` error when deploying Django app to heroku - django

While deploying my Django app to heroku, but colletstatic method seems to throw lots of errors. I've tried several solutions posted online but none worked. By the way, I'm using whitenoise for serving my static files.
Counting objects: 77, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (74/74), done.
Writing objects: 100% (77/77), 351.57 KiB | 0 bytes/s, done.
Total 77 (delta 27), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing python-3.6.1
remote: -----> Installing pip
remote: -----> Installing requirements with pip
remote: Collecting Django==1.11.1 (from -r /tmp/build_d86f80f6593040bde7f9cb90828051e6/requirements.txt (line 1))
remote: Downloading Django-1.11.1-py2.py3-none-any.whl (6.9MB)
remote: Collecting gunicorn==19.7.1 (from -r /tmp/build_d86f80f6593040bde7f9cb90828051e6/requirements.txt (line 2))
remote: Downloading gunicorn-19.7.1-py2.py3-none-any.whl (111kB)
remote: Collecting whitenoise==3.3.0 (from -r /tmp/build_d86f80f6593040bde7f9cb90828051e6/requirements.txt (line 3))
remote: Downloading whitenoise-3.3.0-py2.py3-none-any.whl
remote: Collecting psycopg2==2.7.1 (from -r /tmp/build_d86f80f6593040bde7f9cb90828051e6/requirements.txt (line 4))
remote: Downloading psycopg2-2.7.1-cp36-cp36m-manylinux1_x86_64.whl (2.7MB)
remote: Collecting pytz (from Django==1.11.1->-r /tmp/build_d86f80f6593040bde7f9cb90828051e6/requirements.txt (line 1))
remote: Downloading pytz-2017.2-py2.py3-none-any.whl (484kB)
remote: Installing collected packages: pytz, Django, gunicorn, whitenoise, psycopg2
remote: Successfully installed Django-1.11.1 gunicorn-19.7.1 psycopg2-2.7.1 pytz-2017.2 whitenoise-3.3.0
remote:
remote: -----> $ python manage.py collectstatic --noinput
remote: Traceback (most recent call last):
remote: File "manage.py", line 22, in <module>
remote: execute_from_command_line(sys.argv)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
remote: utility.execute()
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 355, in execute
remote: self.fetch_command(subcommand).run_from_argv(self.argv)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
remote: self.execute(*args, **cmd_options)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute
remote: output = self.handle(*args, **options)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 199, in handle
remote: collected = self.collect()
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 115, in collect
remote: for path, storage in finder.list(self.ignore_patterns):
remote: File "/app/.heroku/python/lib/python3.6/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/python3.6/site-packages/django/contrib/staticfiles/utils.py", line 28, in get_files
remote: directories, files = storage.listdir(location)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/files/storage.py", line 397, in listdir
remote: for entry in os.listdir(path):
remote: FileNotFoundError: [Errno 2] No such file or directory: '/tmp/build_d86f80f6593040bde7f9cb90828051e6/Nostradamus/static'
remote:
remote: ! Error while running '$ python 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: ****** Collectstatic environment variables:
remote:
remote: CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:
remote: EXPORT_PATH=/app/tmp/buildpacks/779a8bbfbbe7e1b715476c0b23fc63a2103b3e4131eda558669aba8fb5e6e05682419376144189b29beb5dee6d7626b4d3385edb0954bffea6c67d8cf622fd51/bin/../export
remote: SOURCE_VERSION=438c510c80b83b0d88b66ca02b9c8563e930b185
remote: PROFILE_PATH=/tmp/build_d86f80f6593040bde7f9cb90828051e6/.profile.d/python.sh
remote: DEBUG_COLLECTSTATIC=0
remote: BUILDPACK_LOG_FILE=/dev/fd/3
remote: LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:
remote: CACHE_DIR=/app/tmp/cache
remote: PYTHONUNBUFFERED=1
remote: PYHONHOME=/tmp/build_d86f80f6593040bde7f9cb90828051e6/.heroku/python
remote: LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:
remote: BIN_DIR=/app/tmp/buildpacks/779a8bbfbbe7e1b715476c0b23fc63a2103b3e4131eda558669aba8fb5e6e05682419376144189b29beb5dee6d7626b4d3385edb0954bffea6c67d8cf622fd51/bin
remote: DYNO=run.7199
remote: PATH=/app/.heroku/python/bin:/app/.heroku/vendor/bin::/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/vendor/bin:/app/tmp/buildpacks/779a8bbfbbe7e1b715476c0b23fc63a2103b3e4131eda558669aba8fb5e6e05682419376144189b29beb5dee6d7626b4d3385edb0954bffea6c67d8cf622fd51/vendor/:/app/tmp/buildpacks/779a8bbfbbe7e1b715476c0b23fc63a2103b3e4131eda558669aba8fb5e6e05682419376144189b29beb5dee6d7626b4d3385edb0954bffea6c67d8cf622fd51/vendor/pip-pop
remote: RECOMMENDED_PYTHON_VERSION=python-2.7.13
remote: C_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:
remote: PWD=/tmp/build_d86f80f6593040bde7f9cb90828051e6
remote: BPLOG_PREFIX=buildpack.python
remote: LANG=en_US.UTF-8
remote: STACK=heroku-16
remote: SHLVL=3
remote: REQUEST_ID=27f7a88e-8898-45ab-b6ef-d7792fdb0a7a
remote: HOME=/app
remote: PYTHONPATH=/tmp/build_d86f80f6593040bde7f9cb90828051e6/
remote: BUILD_DIR=/tmp/build_d86f80f6593040bde7f9cb90828051e6
remote: WARNINGS_LOG=/tmp/tmp.3UgKi9FCcP
remote: PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkgconfig:/app/.heroku/vendor/lib/pkgconfig:/app/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config:
remote: _=/usr/bin/env
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to habibam.
remote:
To https://git.heroku.com/habibam.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/habibam.git'

It's looking in the directory Nostradamus/static and throwing an error because that directory doesn't exist.
If that directory does exist locally then the problem might be that it's empty and so git doesn't track it. The simple solution to that is to create an empty file called .keep (or anything you like, it doesn't matter what it's called) in that directory which will cause git to "see" it.

Related

how to fix Heroku error when trying to push -- pre-receive hook declined

I was trying to push what i have in my app using Django python to be deployed to Heroku and keep getting this error :
! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/immense-brushlands'
requriment.txt file is there :
asgiref==3.4.1
beautifulsoup4==4.10.0
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.7
cloudinary==1.26.0
cryptography==35.0.0
defusedxml==0.7.1
Deprecated==1.2.13
dj-database-url==0.5.0
Django==3.2.5
django-bootstrap4==3.0.1
django-braces==1.14.0
django-heroku==0.3.1
django-oauth-toolkit==1.5.0
django-rest-framework-social-oauth2==1.1.0
djangorestframework==3.12.4
gunicorn==20.1.0
idna==3.3
jwcrypto==1.0
oauthlib==3.1.1
psycopg2==2.9.1
pycparser==2.20
PyJWT==2.3.0
python3-openid==3.2.0
pytz==2021.3
requests==2.26.0
requests-oauthlib==1.3.0
six==1.16.0
social-auth-app-django==5.0.0
social-auth-core==4.1.0
soupsieve==2.2.1
sqlparse==0.4.2
stripe==2.59.0
urllib3==1.26.7
whitenoise==5.3.0
wrapt==1.13.2
my Procfile in root directory and contain:
web : gunicorn foodhub.wsgi
I was trying to push what i have in my app using Django python to be deployed to Heroku and keep getting this error :
! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/immense-brushlands'`
-----> Building on the Heroku-22 stack
-----> Determining which buildpack to use for this app
-----> Python app detected
-----> No Python version was specified. Using the buildpack default: python-3.10.7
To use a different version, see: https://devcenter.heroku.com/articles/python-runtimes
-----> Installing python-3.10.7
-----> Installing pip 22.2.2, setuptools 63.4.3 and wheel 0.37.1
-----> Installing SQLite3
-----> Installing requirements with pip
Collecting asgiref==3.5.2
Downloading asgiref-3.5.2-py3-none-any.whl (22 kB)
Collecting certifi==2022.9.24
Downloading certifi-2022.9.24-py3-none-any.whl (161 kB)
Collecting cloudinary==1.26.0
Downloading cloudinary-1.26.0.tar.gz (170 kB)
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Collecting dj-database-url==1.0.0
Downloading dj_database_url-1.0.0-py3-none-any.whl (6.6 kB)
Collecting Django==4.1.2
Downloading Django-4.1.2-py3-none-any.whl (8.1 MB)
Collecting django-heroku==0.3.1
Downloading django_heroku-0.3.1-py2.py3-none-any.whl (6.2 kB)
Collecting gunicorn==20.1.0
Downloading gunicorn-20.1.0-py3-none-any.whl (79 kB)
Collecting psycopg2==2.9.4
Downloading psycopg2-2.9.4.tar.gz (384 kB)
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Collecting six==1.16.0
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting sqlparse==0.4.3
Downloading sqlparse-0.4.3-py3-none-any.whl (42 kB)
Collecting tzdata==2022.4
Downloading tzdata-2022.4-py2.py3-none-any.whl (336 kB)
Collecting urllib3==1.26.12
Downloading urllib3-1.26.12-py2.py3-none-any.whl (140 kB)
Collecting whitenoise==6.2.0
Downloading whitenoise-6.2.0-py3-none-any.whl (19 kB)
Building wheels for collected packages: cloudinary, psycopg2
Building wheel for cloudinary (setup.py): started
Building wheel for cloudinary (setup.py): finished with status 'done'
Created wheel for cloudinary: filename=cloudinary-1.26.0-py3-none-any.whl size=134187 sha256=391663ac9f9caa29fca028ee944bf59a6ac5066a9aa1012fb188ff52dac36979
Stored in directory: /tmp/pip-ephem-wheel-cache-odd2a9t_/wheels/58/0d/32/997fc6c26f83c9ae73a1bcd41028973512175982df608523ef
Building wheel for psycopg2 (setup.py): started
Building wheel for psycopg2 (setup.py): finished with status 'done'
Created wheel for psycopg2: filename=psycopg2-2.9.4-cp310-cp310-linux_x86_64.whl size=159965 sha256=cae6fb7d596d71258bdd30d91a0aa6ec5e8d5ba26d5c2c8f9601e00eb569ea53
Stored in directory: /tmp/pip-ephem-wheel-cache-odd2a9t_/wheels/10/07/ca/a5e7863aeec605e8a19ea9ccc90bb594784c287cc5534bbecb
Successfully built cloudinary psycopg2
Installing collected packages: whitenoise, urllib3, tzdata, sqlparse, six, psycopg2, gunicorn, certifi, asgiref, Django, cloudinary, dj-database-url, django-heroku
Successfully installed Django-4.1.2 asgiref-3.5.2 certifi-2022.9.24 cloudinary-1.26.0 dj-database-url-1.0.0 django-heroku-0.3.1 gunicorn-20.1.0 psycopg2-2.9.4 six-1.16.0 sqlparse-0.4.3 tzdata-2022.4 urllib3-1.26.12 whitenoise-6.2.0
-----> $ python manage.py collectstatic --noinput
Post-processing 'js/canvas-to-blob.min.js' failed!
Traceback (most recent call last):
File "/tmp/build_b3caaaea/manage.py", line 22, in <module>
main()
File "/tmp/build_b3caaaea/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
utility.execute()
File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv
self.execute(*args, **cmd_options)
File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute
output = self.handle(*args, **options)
File "/app/.heroku/python/lib/python3.10/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 209, in handle
collected = self.collect()
File "/app/.heroku/python/lib/python3.10/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 154, in collect
raise processed
whitenoise.storage.MissingFileError: The file 'js/canvas-to-blob.min.js.map' could not be found with <whitenoise.storage.CompressedManifestStaticFilesStorage object at 0x7ff53e881d50>.
The JS file 'js/canvas-to-blob.min.js' references a file which could not be found:
js/canvas-to-blob.min.js.map
Please check the URL references in this JS file, particularly any
relative paths which might be pointing to the wrong location.
! Error while running '$ python manage.py collectstatic --noinput'.
See traceback above for details.
You may need to update application code to resolve this error.
Or, you can disable collectstatic for this application:
$ heroku config:set DISABLE_COLLECTSTATIC=1
https://devcenter.heroku.com/articles/django-assets
****** Collectstatic environment variables:
PYTHONUNBUFFERED=1
PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config:
DEBUG_COLLECTSTATIC=1
BPLOG_PREFIX=buildpack.python
PWD=/tmp/build_b3caaaea
HOME=/app
LANG=en_US.UTF-8
SOURCE_VERSION=495ce7e183efedd2df883a898d49dab71e966050
REQUEST_ID=9bd57211-cb18-3350-055d-aa2d6bfe888e
ENV_DIR=/tmp/d20221008-54-7rg3a6
PYTHONPATH=.
CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:
BIN_DIR=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/bin
LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:
SHLVL=1
LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:
PIP_NO_PYTHON_VERSION_WARNING=1
BUILDPACK_LOG_FILE=/dev/null
STACK=heroku-22
BUILD_DIR=/tmp/build_b3caaaea
CACHE_DIR=/tmp/codon/tmp/cache
PATH=/app/.heroku/python/bin:/app/.heroku/vendor/bin::/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/vendor/
EXPORT_PATH=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/bin/../export
C_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:
DYNO=run.5378
PROFILE_PATH=/tmp/build_b3caaaea/.profile.d/python.sh
OLDPWD=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136
_=/usr/bin/env
! Push rejected, failed to compile Python app.
! Push failed
remote: Collecting tzdata==2022.4
remote: Downloading tzdata-2022.4-py2.py3-none-any.whl (336 kB)
remote: Collecting urllib3==1.26.12
remote: Downloading urllib3-1.26.12-py2.py3-none-any.whl (140 kB)
remote: Collecting whitenoise==6.2.0
remote: Downloading whitenoise-6.2.0-py3-none-any.whl (19 kB)
remote: Building wheels for collected packages: cloudinary, psycopg2
remote: Building wheel for cloudinary (setup.py): started
remote: Building wheel for cloudinary (setup.py): finished with status 'done'
remote: Created wheel for cloudinary: filename=cloudinary-1.26.0-py3-none-any.whl size=134187 sha256=a8e60aba890ebec526fa450889f89331a3f91deb0951c91ab9e6cbcf4452cf43
remote: Stored in directory: /tmp/pip-ephem-wheel-cache-nqiyqf0q/wheels/58/0d/32/997fc6c26f83c9ae73a1bcd41028973512175982df608523ef
remote: Building wheel for psycopg2 (setup.py): started
remote: Building wheel for psycopg2 (setup.py): finished with status 'done'
remote: Created wheel for psycopg2: filename=psycopg2-2.9.4-cp310-cp310-linux_x86_64.whl size=159965 sha256=8087037db2c9ec2fdbae93eb5afd833509bbcbdbd546e980794242a06e01b87a
remote: Stored in directory: /tmp/pip-ephem-wheel-cache-nqiyqf0q/wheels/10/07/ca/a5e7863aeec605e8a19ea9ccc90bb594784c287cc5534bbecb
remote: Successfully built cloudinary psycopg2
remote: Installing collected packages: whitenoise, urllib3, tzdata, sqlparse, six, psycopg2, gunicorn, certifi, asgiref, Django, cloudinary, dj-database-url, django-heroku
remote: Successfully installed Django-4.1.2 asgiref-3.5.2 certifi-2022.9.24 cloudinary-1.26.0 dj-database-url-1.0.0 django-heroku-0.3.1 gunicorn-20.1.0 psycopg2-2.9.4 six-1.16.0 sqlparse-0.4.3 tzdata-2022.4 urllib3-1.26.12 whitenoise-6.2.0
remote: -----> $ python manage.py collectstatic --noinput
remote: Post-processing 'js/load-image.all.min.js' failed!
remote: Traceback (most recent call last):
remote: File "/tmp/build_f2d02e58/manage.py", line 22, in <module>
remote: main()
remote: File "/tmp/build_f2d02e58/manage.py", line 18, in main
remote: execute_from_command_line(sys.argv)
remote: File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
remote: utility.execute()
remote: File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
remote: self.fetch_command(subcommand).run_from_argv(self.argv)
remote: File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv
remote: self.execute(*args, **cmd_options)
remote: File "/app/.heroku/python/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute
remote: output = self.handle(*args, **options)
remote: File "/app/.heroku/python/lib/python3.10/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 209, in handle
remote: collected = self.collect()
remote: File "/app/.heroku/python/lib/python3.10/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 154, in collect
remote: raise processed
remote: whitenoise.storage.MissingFileError: The file 'js/load-image.all.min.js.map' could not be found with <whitenoise.storage.CompressedManifestStaticFilesStorage object at 0x7f5b6e77dd50>.
remote: The JS file 'js/load-image.all.min.js' references a file which could not be found:
remote: js/load-image.all.min.js.map
remote: Please check the URL references in this JS file, particularly any
remote: relative paths which might be pointing to the wrong location.
remote:
remote: ! Error while running '$ python 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: ****** Collectstatic environment variables:
remote:
remote: PYTHONUNBUFFERED=1
remote: PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config:
remote: DEBUG_COLLECTSTATIC=1
remote: BPLOG_PREFIX=buildpack.python
remote: PWD=/tmp/build_f2d02e58
remote: HOME=/app
remote: LANG=en_US.UTF-8
remote: SOURCE_VERSION=495ce7e183efedd2df883a898d49dab71e966050
remote: REQUEST_ID=8dbf04e4-d06f-2a07-26fd-fd9f783c0707
remote: ENV_DIR=/tmp/d20221008-55-86y9b6
remote: PYTHONPATH=.
remote: CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:
remote: BIN_DIR=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/bin
remote: LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:
remote: SHLVL=1
remote: LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:
remote: PIP_NO_PYTHON_VERSION_WARNING=1
remote: BUILDPACK_LOG_FILE=/dev/null
remote: STACK=heroku-22
remote: BUILD_DIR=/tmp/build_f2d02e58
remote: CACHE_DIR=/tmp/codon/tmp/cache
remote: PATH=/app/.heroku/python/bin:/app/.heroku/vendor/bin::/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/vendor/
remote: EXPORT_PATH=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136/bin/../export
remote: C_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:
remote: DYNO=run.5998
remote: PROFILE_PATH=/tmp/build_f2d02e58/.profile.d/python.sh
remote: OLDPWD=/tmp/codon/tmp/buildpacks/0f40890b54a617ec2334fac0439a123c6a0c1136
remote: _=/usr/bin/env
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: !
remote: ! ## Warning - The same version of this code has already been built: 495ce7e183efedd2df883a898d49dab71e966050
remote: !
remote: ! We have detected that you have triggered a build from source code with version 495ce7e183efedd2df883a898d49dab71e966050
remote: ! at least twice. One common cause of this behavior is attempting to deploy code from a different branch.
remote: !
remote: ! If you are developing on a branch and deploying via git you must run:
remote: !
remote: ! git push heroku <branchname>:main
remote: !
remote: ! This article goes into details on the behavior:
remote: ! https://devcenter.heroku.com/articles/duplicate-build-version
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to immense-brushlands-83439.
remote:
To https://git.heroku.com/immense-brushlands-83439.git
! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/immense-brushlands-83439.git'

Unable to deploy Django app in Heroku due to requirements.txt error

I am trying to deploy a django app I created to heroku. When i do git push heroku master an error shows remote: cp: cannot create regular file '/app/tmp/cache/.heroku/requirements.txt': No such file or directory.
here is the full log:
Enumerating objects: 35, done.
Counting objects: 100% (35/35), done.
Delta compression using up to 2 threads
Compressing objects: 100% (32/32), done.
Writing objects: 100% (35/35), 12.68 KiB | 405.00 KiB/s, done.
Total 35 (delta 2), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: cp: cannot create regular file '/app/tmp/cache/.heroku/requirements.txt': No such file or directory
remote: -----> Installing python-3.6.10
remote: -----> Installing pip
remote: -----> Installing SQLite3
remote: Sqlite3 successfully installed.
remote: -----> Installing requirements with pip
remote: Collecting asgiref==3.2.7
remote: Downloading asgiref-3.2.7-py2.py3-none-any.whl (19 kB)
remote: Collecting astroid==2.3.3
remote: Downloading astroid-2.3.3-py3-none-any.whl (205 kB)
remote: Collecting colorama==0.4.3
remote: Downloading colorama-0.4.3-py2.py3-none-any.whl (15 kB)
remote: Collecting dj-database-url==0.5.0
remote: Downloading dj_database_url-0.5.0-py2.py3-none-any.whl (5.5 kB)
remote: Collecting Django==3.0.5
remote: Downloading Django-3.0.5-py3-none-any.whl (7.5 MB)
remote: Collecting django-heroku==0.3.1
remote: Downloading django_heroku-0.3.1-py2.py3-none-any.whl (6.2 kB)
remote: Collecting gunicorn==20.0.4
remote: Downloading gunicorn-20.0.4-py2.py3-none-any.whl (77 kB)
remote: Collecting isort==4.3.21
remote: Downloading isort-4.3.21-py2.py3-none-any.whl (42 kB)
remote: Collecting lazy-object-proxy==1.4.3
remote: Downloading lazy_object_proxy-1.4.3-cp36-cp36m-manylinux1_x86_64.whl (55 kB)
remote: Collecting mccabe==0.6.1
remote: Downloading mccabe-0.6.1-py2.py3-none-any.whl (8.6 kB)
remote: Collecting psycopg2==2.8.5
remote: Downloading psycopg2-2.8.5.tar.gz (380 kB)
remote: Collecting pylint==2.4.4
remote: Downloading pylint-2.4.4-py3-none-any.whl (302 kB)
remote: Collecting pytz==2019.3
remote: Downloading pytz-2019.3-py2.py3-none-any.whl (509 kB)
remote: Collecting six==1.14.0
remote: Downloading six-1.14.0-py2.py3-none-any.whl (10 kB)
remote: Collecting sqlparse==0.3.1
remote: Downloading sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
remote: Collecting typed-ast==1.4.1
remote: Downloading typed_ast-1.4.1-cp36-cp36m-manylinux1_x86_64.whl (737 kB)
remote: Collecting whitenoise==5.0.1
remote: Downloading whitenoise-5.0.1-py2.py3-none-any.whl (20 kB)
remote: Collecting wrapt==1.11.2
remote: Downloading wrapt-1.11.2.tar.gz (27 kB)
remote: Building wheels for collected packages: psycopg2, wrapt
remote: Building wheel for psycopg2 (setup.py): started
remote: Building wheel for psycopg2 (setup.py): finished with status 'done'
remote: Created wheel for psycopg2: filename=psycopg2-2.8.5-cp36-cp36m-linux_x86_64.whl size=447249 sha256=8c3101c70eafd1ccd9ef08021cf553d3c10d55ac62b1c191b19735ab3c026e5a
remote: Stored in directory: /tmp/pip-ephem-wheel-cache-025326ex/wheels/52/9a/ab/22a0d1dc560ad5c0d09cc1c968015f89726e7e01c190dee110
remote: Building wheel for wrapt (setup.py): started
remote: Building wheel for wrapt (setup.py): finished with status 'done'
remote: Created wheel for wrapt: filename=wrapt-1.11.2-cp36-cp36m-linux_x86_64.whl size=69767 sha256=974a65540f5d88c324d2c7cd1c4379cbaa7e2c1a03e599864be4c2ffbe4e17af
remote: Stored in directory: /tmp/pip-ephem-wheel-cache-025326ex/wheels/0d/85/48/15d7bfab92a2d0e87372224c1f628fc57db7447a663a58e86c
remote: Successfully built psycopg2 wrapt
remote: Installing collected packages: asgiref, lazy-object-proxy, typed-ast, six, wrapt, astroid, colorama, dj-database-url, sqlparse, pytz, Django, psycopg2, whitenoise, django-heroku, gunicorn, isort, mccabe, pylint
remote: Successfully installed Django-3.0.5 asgiref-3.2.7 astroid-2.3.3 colorama-0.4.3 dj-database-url-0.5.0 django-heroku-0.3.1 gunicorn-20.0.4 isort-4.3.21 lazy-object-proxy-1.4.3 mccabe-0.6.1 psycopg2-2.8.5 pylint-2.4.4 pytz-2019.3 six-1.14.0 sqlparse-0.3.1 typed-ast-1.4.1 whitenoise-5.0.1 wrapt-1.11.2
remote: -----> $ python manage.py collectstatic --noinput
remote: Traceback (most recent call last):
remote: File "manage.py", line 21, in <module>
remote: main()
remote: File "manage.py", line 17, in main
remote: execute_from_command_line(sys.argv)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
remote: utility.execute()
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 395, in execute
remote: self.fetch_command(subcommand).run_from_argv(self.argv)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/base.py", line 328, in run_from_argv
remote: self.execute(*args, **cmd_options)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/base.py", line 369, in execute
remote: output = self.handle(*args, **options)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 187, in handle
remote: collected = self.collect()
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 104, in collect
remote: for path, storage in finder.list(self.ignore_patterns):
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/staticfiles/finders.py", line 130, in list
remote: for path in utils.get_files(storage, ignore_patterns):
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/staticfiles/utils.py", line 23, in get_files
remote: directories, files = storage.listdir(location)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/files/storage.py", line 316, in listdir
remote: for entry in os.scandir(path):
remote: FileNotFoundError: [Errno 2] No such file or directory: '/tmp/build_8b272f59d204dc1b5699579647b39ae3/static_in_env'
remote:
remote: ! Error while running '$ python 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: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to pure-plains-36964.
remote:
To https://git.heroku.com/pure-plains-36964.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/pure-plains-36964.git'
I do have requirements.txt in my root directory with everything included. Please help
There is indeed a requirements.txt error but that does not stop the build.
The error is something with your django collectstatic. Might be because you have an empty folder in called static_in_env. You may follow the recommendation in the stack trace, i.e. run:
$ heroku config:set DISABLE_COLLECTSTATIC=1
But if you need the collectstatic to run then revert that flag:
$ heroku config:set DISABLE_COLLECTSTATIC=0
and then debug why it is empty. It is hard to tell without more context.
As for the requirements.txt, make sure you only have one requirements.txt. If you have more than one, make sure they all have some text in them. Hope this helps.

Push to heroku: no module named 'channels'

I am facing this error when I add 'channels' into INSTALLED_APPS
Writing objects: 100% (4/4), 351 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing requirements with latest Pipenv…
remote: Installing dependencies from Pipfile.lock (36121f)…
remote: -----> $ python manage.py collectstatic --noinput
remote: Traceback (most recent call last):
remote: File "manage.py", line 10, in <module>
remote: execute_from_command_line(sys.argv)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
remote: utility.execute()
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 337, in execute
remote: django.setup()
remote: File "/app/.heroku/python/lib/python3.6/site- packages/django/__init__.py", line 27, in setup
remote: apps.populate(settings.INSTALLED_APPS)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/registry.py", line 85, in populate
remote: app_config = AppConfig.create(entry)
remote: File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/config.py", line 94, in create
remote: module = import_module(entry)
remote: File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
remote: return _bootstrap._gcd_import(name[level:], package, level)
remote: File "<frozen importlib._bootstrap>", line 978, in _gcd_import
remote: File "<frozen importlib._bootstrap>", line 961, in _find_and_load
remote: File "<frozen importlib._bootstrap>", line 948, in _find_and_load_unlocked
remote: ModuleNotFoundError: No module named 'channels'
remote:
remote: ! Error while running '$ python 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: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
What have I tried so far:
I disable the collectstatic and it is able to push the code to heroku but server is crashed
uninstall the channels and install again
Can anyone give me some tips,thank you.
I had the same issue. The problem was due to the fact I used django-channels (there is also django_channels) instead of channels.
The right package for django channels is in fact channels.
So just do this:
List all installed packages with channels in there names
pip list | grep channels
output:
channels (1.1.6)
channels-api (0.4.0)
django-channels (0.7.0)
Uninstall each of them(even channels) by using pip uninstall package-name:
ex: pip uninstall django-channels
Reinstall only channels (witch is called channels not 'django-channels' or 'django_channels') package using:
pip install channels
Create requirements.txt using:
pip freeze > requirements.txt

Should I use pip install or sudo pip install when installing package in OpenShift application?

Steps To Replicate
Approach #1
rhc ssh my_app_name
pip install bottle-cork
Approach #2
rhc ssh my_app_name
source ~/python/virtenv/bin/activate
pip install bottle-cork
Approach #3
Adding bottle-cork to requirements.txt.
Approach #4
Adding install_requires=['bottle-cork'] to setup.py.
Approach 1 and 2 produced a long set of errors.
Approach 3 and 4 were suggested in official documentation and caused multiple errors and warnings.
I'm tempted to try a sudo pip install but am aware that this can sometimes result in permission problems and incongruities (see this general warning against sudo pip).
Questions
01) Is it best practise to use pip install or sudo pip install when installing packages in OpenShift?
02) Should you be in virtualenv when doing a pip install, ie:
source ~/python/virtenv/bin/activate
03) Or should you use one of the following:
Adding bottle-cork to requirements.txt.
Adding install_requires=['bottle-cork'] to setup.py.
#1 and #2 approach errors
Note: ******* represents user id.
The directory '/var/lib/openshift/*******/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
You are using pip version 7.1.0, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
The directory '/var/lib/openshift/*******/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting bottle-cork
Downloading bottle-cork-0.12.0.tar.gz (108kB)
100% |????????????????????????????????| 110kB 3.5MB/s
Collecting Bottle (from bottle-cork)
Downloading bottle-0.12.9.tar.gz (69kB)
100% |????????????????????????????????| 69kB 3.2MB/s
Collecting pycrypto (from bottle-cork)
Downloading pycrypto-2.6.1.tar.gz (446kB)
100% |????????????????????????????????| 446kB 956kB/s
Building wheels for collected packages: bottle-cork, Bottle, pycrypto
Exception:
Traceback (most recent call last):
File "/var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages/pip/basecommand.py", line 223, in main
status = self.run(options, args)
File "/var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages/pip/commands/install.py", line 293, in run
wb.build(autobuilding=True)
File "/var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages/pip/wheel.py", line 756, in build
ensure_dir(output_dir)
File "/var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages/pip/utils/__init__.py", line 70, in ensure_dir
os.makedirs(path)
File "/var/lib/openshift/*******/python/virtenv/lib64/python2.7/os.py", line 150, in makedirs
makedirs(head, mode)
File "/var/lib/openshift/*******/python/virtenv/lib64/python2.7/os.py", line 150, in makedirs
makedirs(head, mode)
File "/var/lib/openshift/*******/python/virtenv/lib64/python2.7/os.py", line 150, in makedirs
makedirs(head, mode)
File "/var/lib/openshift/*******/python/virtenv/lib64/python2.7/os.py", line 150, in makedirs
makedirs(head, mode)
File "/var/lib/openshift/*******/python/virtenv/lib64/python2.7/os.py", line 150, in makedirs
makedirs(head, mode)
File "/var/lib/openshift/*******/python/virtenv/lib64/python2.7/os.py", line 150, in makedirs
makedirs(head, mode)
File "/var/lib/openshift/*******/python/virtenv/lib64/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/var/lib/openshift/*******/.cache'
#3 approach errors
I tried adding bottle-cork to requirements.txt as per this OpenShift document and then pushing and restarting. After ssh'ing in again and running pip freeze, I cannot see bottle-cork. The errors shown during the git push are shown below:
remote: Checking for pip dependency listed in requirements.txt file..
remote: The directory '/var/lib/openshift/*******/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
remote: You are using pip version 7.1.0, however version 8.1.2 is available.
remote: You should consider upgrading via the 'pip install --upgrade pip' command.
remote: The directory '/var/lib/openshift/*******/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
remote: Collecting bottle-cork (from -r /var/lib/openshift/*******/app-root/runtime/repo/requirements.txt (line 1))
remote: The repository located at mirror1.ops.rhcloud.com is not a trusted or secure host and is being ignored. If this repository is available via HTTPS it is recommended to use HTTPS instead, otherwise you may silence this warning and allow it anyways with '--trusted-host mirror1.ops.rhcloud.com'.
remote: Could not find a version that satisfies the requirement bottle-cork (from -r /var/lib/openshift/*******/app-root/runtime/repo/requirements.txt (line 1)) (from versions: )
remote: No matching distribution found for bottle-cork (from -r /var/lib/openshift/*******/app-root/runtime/repo/requirements.txt (line 1))
#4 approach errors
I tried adding install_requires=['bottle-cork'] to setup.py as per this OpenShift document and then pushing and restarting. After ssh'ing in again and running pip freeze, I CAN see bottle-cork. However, there were multiple warnings and errors during git push:
remote: Processing dependencies for YourAppName==1.0
remote: Searching for bottle-cork
remote: Reading http://mirror1.ops.rhcloud.com/mirror/python/web/simple/bottle-cork/
remote: Best match: bottle-cork 0.12.0
remote: Downloading http://mirror1.ops.rhcloud.com/mirror/python/web/packages/source/b/bottle-cork/bottle-cork-0.12.0.tar.gz#md5=dfb94beb8038b22e07a1876cad464a23
remote: Processing bottle-cork-0.12.0.tar.gz
remote: Writing /tmp/easy_install-eAzgu8/bottle-cork-0.12.0/setup.cfg
remote: Running bottle-cork-0.12.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-eAzgu8/bottle-cork-0.12.0/egg-dist-tmp-KleNYn
remote: zip_safe flag not set; analyzing archive contents...
remote: Moving bottle_cork-0.12.0-py2.7.egg to /var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages
remote: Adding bottle-cork 0.12.0 to easy-install.pth file
remote:
remote: Installed /var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages/bottle_cork-0.12.0-py2.7.egg
remote: Searching for pycrypto
remote: Reading http://mirror1.ops.rhcloud.com/mirror/python/web/simple/pycrypto/
remote: Best match: pycrypto 2.6.1
remote: Downloading http://mirror1.ops.rhcloud.com/mirror/python/web/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz#md5=55a61a054aa66812daf5161a0d5d7eda
remote: Processing pycrypto-2.6.1.tar.gz
remote: Writing /tmp/easy_install-3HiFoD/pycrypto-2.6.1/setup.cfg
remote: Running pycrypto-2.6.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-3HiFoD/pycrypto-2.6.1/egg-dist-tmp-dPyoQF
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/_fastmath.c:31:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/stdio.h:28,
remote: from src/_fastmath.c:29:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/_fastmath.c:31:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/stdio.h:28,
remote: from src/_fastmath.c:29:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/MD2.c:31:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/string.h:27,
remote: from src/MD2.c:30:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/MD2.c:31:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/string.h:27,
remote: from src/MD2.c:30:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/MD4.c:31:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/string.h:27,
remote: from src/MD4.c:30:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/MD4.c:31:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/string.h:27,
remote: from src/MD4.c:30:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/hash_SHA2_template.c:33,
remote: from src/SHA256.c:72:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/hash_SHA2.h:72,
remote: from src/SHA256.c:35:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/hash_SHA2_template.c:33,
remote: from src/SHA256.c:72:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/hash_SHA2.h:72,
remote: from src/SHA256.c:35:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/hash_SHA2_template.c:33,
remote: from src/SHA224.c:73:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/hash_SHA2.h:72,
remote: from src/SHA224.c:36:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/hash_SHA2_template.c:33,
remote: from src/SHA224.c:73:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/hash_SHA2.h:72,
remote: from src/SHA224.c:36:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/hash_SHA2_template.c:33,
remote: from src/SHA384.c:80:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/hash_SHA2.h:72,
remote: from src/SHA384.c:36:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/hash_SHA2_template.c:33,
remote: from src/SHA384.c:80:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/hash_SHA2.h:72,
remote: from src/SHA384.c:36:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/hash_SHA2_template.c:33,
remote: from src/SHA512.c:80:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/hash_SHA2.h:72,
remote: from src/SHA512.c:36:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/hash_SHA2_template.c:33,
remote: from src/SHA512.c:80:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/hash_SHA2.h:72,
remote: from src/SHA512.c:36:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/RIPEMD160.c:57:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/RIPEMD160.c:48:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/RIPEMD160.c:57:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/RIPEMD160.c:48:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/AES.c:29:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/assert.h:37,
remote: from src/AES.c:27:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/AES.c:29:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/assert.h:37,
remote: from src/AES.c:27:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/ARC2.c:45:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/string.h:27,
remote: from src/ARC2.c:44:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/ARC2.c:45:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/string.h:27,
remote: from src/ARC2.c:44:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/Blowfish.c:39:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/Blowfish.c:31:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/Blowfish.c:39:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/stdint.h:26,
remote: from src/Blowfish.c:31:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/DES.c:37:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/assert.h:37,
remote: from src/libtom/tomcrypt.h:3,
remote: from src/libtom/tomcrypt_des.c:11,
remote: from src/DES.c:32:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/DES.c:37:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/assert.h:37,
remote: from src/libtom/tomcrypt.h:3,
remote: from src/libtom/tomcrypt_des.c:11,
remote: from src/DES.c:32:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/DES.c:37,
remote: from src/DES3.c:26:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/assert.h:37,
remote: from src/libtom/tomcrypt.h:3,
remote: from src/libtom/tomcrypt_des.c:11,
remote: from src/DES.c:32,
remote: from src/DES3.c:26:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/DES.c:37,
remote: from src/DES3.c:26:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/assert.h:37,
remote: from src/libtom/tomcrypt.h:3,
remote: from src/libtom/tomcrypt_des.c:11,
remote: from src/DES.c:32,
remote: from src/DES3.c:26:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/_counter.c:28:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1191:1: warning: "_POSIX_C_SOURCE" redefined
remote: In file included from /usr/include/assert.h:37,
remote: from src/_counter.c:25:
remote: /usr/include/features.h:162:1: warning: this is the location of the previous definition
remote: In file included from /opt/rh/python27/root/usr/include/python2.7/pyconfig.h:6,
remote: from /opt/rh/python27/root/usr/include/python2.7/Python.h:8,
remote: from src/_counter.c:28:
remote: /opt/rh/python27/root/usr/include/python2.7/pyconfig-64.h:1213:1: warning: "_XOPEN_SOURCE" redefined
remote: In file included from /usr/include/assert.h:37,
remote: from src/_counter.c:25:
remote: /usr/include/features.h:164:1: warning: this is the location of the previous definition
remote: zip_safe flag not set; analyzing archive contents...
remote: Moving pycrypto-2.6.1-py2.7-linux-x86_64.egg to /var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages
remote: Adding pycrypto 2.6.1 to easy-install.pth file
remote:
remote: Installed /var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages/pycrypto-2.6.1-py2.7-linux-x86_64.egg
remote: Searching for Bottle
remote: Best match: bottle cork-0.12.0
remote: Downloading http://mirror1.ops.rhcloud.com/mirror/python/web/packages/source/b/bottle-cork/bottle-cork-0.12.0.tar.gz#md5=dfb94beb8038b22e07a1876cad464a23
remote: Processing bottle-cork-0.12.0.tar.gz
remote: Writing /tmp/easy_install-8wwl3n/bottle-cork-0.12.0/setup.cfg
remote: Running bottle-cork-0.12.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-8wwl3n/bottle-cork-0.12.0/egg-dist-tmp-ZrFuqW
remote: zip_safe flag not set; analyzing archive contents...
remote: Removing /var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages/bottle_cork-0.12.0-py2.7.egg
remote: Moving bottle_cork-0.12.0-py2.7.egg to /var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages
remote: bottle-cork 0.12.0 is already the active version in easy-install.pth
remote:
remote: Installed /var/lib/openshift/*******/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages/bottle_cork-0.12.0-py2.7.egg
remote: error: The 'Bottle' distribution was not found and is required by bottle-cork
There is specific process required in order to install dependencies using pip with OpenShift, and sudo isn't really an option. This includes using a requirements.txt or setup.py files (both can be used at the same time, although any conflicts would then need to be resolved manually).
Take a look at the Deployment Guide and Managing Application Package Dependencies - Step 3. Obviously you've tried many different ways already of getting things working, although it's not entirely clear where the issue is without seeing the requirements.txt or setup.py files.

Heroku: string without NULL bytes with several requirements files

I'm trying to deploy a Django web application in Heroku from Ubuntu following the "Two scoops of Django 1.6" project structure.
After doing heroku create, I run git push heroku master and I get the output attached at the end.
I googled extensively and I'm aware that the error is this
TypeError: must be encoded string without NULL bytes, not str
and it is caused because some encoding or rare characters in requirements files. My problem is that I tried saving with less dependencies and changing encodings in the files and achieved nothing (I don't know the valid encodings for Heroku, so I'm blind at this).
I'm looking for a way of finding the null characters, even with cat -e at the command line, but I can't find anything. I'm asking for a way for finding the encoding problem or the wrong dependency.
Thank you in advanced.
EDIT: I tried doing pip
install -r <fileName>.txt
with several of my requirements txt files. All the installations were fine. I also tried doing the git push heroku master with all commented in the main requirements.txt (an empty file) and it keeps giving the same error. Maybe heroku is not picking the requirements.txt file???
I tried re-creating the files from command line and typing manually the same content (not copy-paste). The same error keeps appearing. :-(
Files and output:
My requirements files are:
requirements.txt (at the very root of the project):
# This file is here because many Platforms as a Service look for
# requirements.txt in the root directory of a project.
-r requirements/production.txt
requirements/production.txt:
# Pro-tip: Try not to put anything here. There should be no dependency in
# production that isn't in development.
-r base.txt
gunicorn==18.0
and requirements/base.txt:
Django==1.7
psycopg2==2.6
sqlparse==0.1.15
django-debug-toolbar==1.3.0
html5lib==0.999
Pillow==2.8.1
PyPDF2==1.24
reportlab==3.1.44
six==1.9.0
xhtml2pdf==0.0.6
the output:
Pushing to https://git.heroku.com/tranquil-cliffs-3699.git
POST git-receive-pack (chunked)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing runtime (python-2.7.10)
remote: -----> Installing dependencies with pip
remote: Exception:
remote: Traceback (most recent call last):
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/basecommand.py", line 223, in main
remote: status = self.run(options, args)
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/commands/install.py", line 268, in run
remote: wheel_cache
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/basecommand.py", line 287, in populate_requirement_set
remote: wheel_cache=wheel_cache):
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/req/req_file.py", line 86, in parse_requirements
remote: for req in req_iter:
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/req/req_file.py", line 161, in process_line
remote: for req in parser:
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/req/req_file.py", line 86, in parse_requirements
remote: for req in req_iter:
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/req/req_file.py", line 161, in process_line
remote: for req in parser:
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/req/req_file.py", line 86, in parse_requirements
remote: for req in req_iter:
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/req/req_file.py", line 130, in process_line
remote: wheel_cache=wheel_cache
remote: File "/app/.heroku/python/lib/python2.7/site-packages/pip-7.0.1-py2.7.egg/pip/req/req_install.py", line 162, in from_line
remote: if (os.path.isdir(p) and
remote: File "/app/.heroku/python/lib/python2.7/genericpath.py", line 49, in isdir[K
remote: st = os.stat(s)
remote: TypeError: must be encoded string without NULL bytes, not str
remote:
remote:
remote: ! Push rejected, failed to compile Python app
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to tranquil-cliffs-3699.
remote:
To https://git.heroku.com/tranquil-cliffs-3699.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/tranquil-cliffs-3699.git'
It was all my fault. Super-newbie stupid error. I was not making git commit after each edit, so I was pushing always the same wrong files to Heroku.
Now I finally realized, and when pushing the error has changed to another one.
Thanks a lot for your help and sorry for making you lose your time.