Error 30 installing Python library with Pip on Heroku

153 views Asked by At

I'm trying to install The Echo Nest Remix Python Library on Heroku, but it seems that at the end it tries to copy some data even though Heroku is read-only.

Here's what happens when pushing to Heroku master.

Error:

remote:            running install_data
remote:            copying external/youtube-dl/youtube-dl -> /usr/local/bin
remote:            error: [Errno 30] Read-only file system: '/usr/local/bin/youtube-dl'
remote:
remote:            ----------------------------------------
remote:        Command "/app/.heroku/python/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-sEL0Eg-build/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-6TegpX-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-sEL0Eg-build
remote:
remote:  !     Push rejected, failed to compile Python app

My requirements.txt looks like:

numpy==1.6.2
http://static.echonest.com/remix/packages/remix-2.2.1.tar.gz

My runtime.txt looks like:

python-2.7.10

Is there any way to get past this? Has anyone successfully installed Remix on Heroku?

Thanks for any help.

1

There are 1 answers

0
miguel On BEST ANSWER

The problem was that the Echo Nest Remix package copied a couple of folders from its package onto Heroku's project directory and this is illegal.

I had to fork the Remix repository, delete the directories that were getting copied over, change any mention of them in the code, and use this new fork to install Remix.

For anybody that is having the same problem and wants to use this fork, keep in mind that I had to remove any mention of youtube-dl in the repository. This was not an issue because my application does not need youtube-dl, but yours might.

You can find the forked Remix (2.2.1) repository at https://github.com/Mdelvalle/remix.