Hi,
I have just started using pipelines, and I have a yml file as follows:
image: python:3.6.4
clone:
depth: full
pipelines:
default:
- step: name: Installing dependancies
caches:
- pip
script:
- pip install -r requirements.txt -vvv
- step:
name: Debugging dependancy installs and locations
script:
- ls -altr /usr/local/lib/python3.6/site-packages
- ls -altr /usr/local/bin
- which pip
- which python
- python -c "import site; print(site.getsitepackages())"
- step:
name: Installing local app script:
- python setup.py install
- ls -altr /usr/local/lib/python3.6/site-packages
- step:
name: Setting environment variables
script:
- export FLASK_APP=stackademicdata
- step:
name: Run Flask app
caches:
- flask
script:
- python -m flask run
- step:
deployment: test
name: Deploy to Heroku
script:
- git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_DATA_APP_NAME.git HEADdefinitions:
caches:
flask: /usr/local/bin/flask
the contents of my requirement.txt is:
flask
flask-sqlalchemy
click
gunicorn
pytest
setuptools
jsonify
requests
entrypoints
decorators
psycopg2
sqlalchemy
jsonschema
flask-wtf
the output states that all packages in this step have been installed correctly:
Successfully installed
Jinja2-2.10
MarkupSafe-1.0
WTForms-2.1
Werkzeug-0.14.1
attrs-17.4.0
certifi-2018.1.18
chardet-3.0.4
click-6.7
decorators-0.1.1
entrypoints-0.2.3
flask-0.12.2 flask-sqlalchemy-2.3.2
flask-wtf-0.14.2
gunicorn-19.7.1
idna-2.6
itsdangerous-0.24
jsonify-0.5
jsonschema-2.6.0
pluggy-0.6.0
psycopg2-2.7.4
py-1.5.2
pytest-3.4.2
requests-2.18.4
six-1.11.0
sqlalchemy-1.2.5
urllib3-1.22Cleaning up..
Therefore I would expect to be able to use those packages in the standard way, with CLI control. For example, with the flask package, in my build file I need to be able to run 'flask run' to test whether the application starts correctly.
However, the build always fails on that step, with the error:
+ python -m flask run/usr/local/bin/python: No module named flask
I have included debugging steps, but for the life of me I cant figure out where pip installs the packages?!
This is the output of the debugging step commands:
+ ls -altr /usr/local/lib/python3.6/site-packages
total 96
-rw-r--r--. 1 root staff 119 Mar 14 17:49 README.txt
drwxr-sr-x. 1 root staff 4096 Mar 14 17:49 ..
drwxr-sr-x. 2 root staff 4096 Mar 14 17:49 wheel-0.30.0.dist-info
drwxr-sr-x. 5 root staff 4096 Mar 14 17:49 wheel
drwxr-sr-x. 2 root staff 4096 Mar 14 17:49 setuptools-38.5.2.dist-info
drwxr-sr-x. 5 root staff 4096 Mar 14 17:49 setuptools
drwxr-sr-x. 5 root staff 4096 Mar 14 17:49 pkg_resources
drwxr-sr-x. 2 root staff 4096 Mar 14 17:49 pip-9.0.1.dist-info
drwxr-sr-x. 11 root staff 4096 Mar 14 17:49 pip
-rw-r--r--. 1 root staff 126 Mar 14 17:49 easy_install.py
drwxr-sr-x. 1
+ ls -altr /usr/local/bin
total 188
drwxrwsr-x. 1 root staff 4096 Mar 12 00:00 ..
-rwxr-xr-x. 2 root staff 14312 Mar 14 17:49 python3.6m
-rwxr-xr-x. 2 root staff 14312 Mar 14 17:49 python3.6
-rwxr-xr-x. 1 root staff 441 Mar 14 17:49 pyvenv-3.6
lrwxrwxrwx. 1 root staff 10 Mar 14 17:49 pyvenv -> pyvenv-3.6
-rwxr-xr-x. 1 root staff 3109 Mar 14 17:49 python3.6m-config
lrwxrwxrwx. 1 root staff 17 Mar 14 17:49 python3.6-config -> python3.6m-config
lrwxrwxrwx. 1 root staff 16 Mar 14 17:49 python3-config -> python3.6-config
lrwxrwxrwx. 1 root staff 9 Mar 14 17:49 python3 -> python3.6
-rwxr-xr-x. 1 root staff 84 Mar 14 17:49 pydoc3.6
lrwxrwxrwx. 1 root staff 8 Mar 14 17:49 pydoc3 -> pydoc3.6
-rwxr-xr-x. 1 root staff 99 Mar 14 17:49 idle3.6
lrwxrwxrwx. 1 root staff 7 Mar 14 17:49 idle3 -> idle3.6
-rwxr-xr-x. 1 root staff 101 Mar 14 17:49 2to3-3.6
lrwxrwxrwx. 1 root staff 8 Mar 14 17:49 2to3 -> 2to3-3.6
lrwxrwxrwx. 1 root staff 14 Mar 14 17:49 python-config -> python3-config
lrwxrwxrwx. 1 root staff 7 Mar 14 17:49 python -> python3
lrwxrwxrwx. 1 root staff 6 Mar 14 17:49 pydoc -> pydoc3
lrwxrwxrwx. 1 root staff 5 Mar 14 17:49 idle -> idle3
-rwxr-xr-x. 1 root staff 218 Mar 14 17:49 wheel
-rwxr-xr-x. 1 root staff 211 Mar 14 17:49 pip3.6
-rwxr-xr-x. 1 root staff 211 Mar 14 17:49 pip3
-rwxr-xr-x. 1 root staff 211 Mar 14 17:49 pip
-rwxr-xr-x. 1 root staff 239 Mar 14 17:49 easy_install-3.6
-rwxr-xr-x. 1 r
+ which pip
/usr/local/bin/pip
+ which python
/usr/local/bin/python
But I cannot find the flask package (or any others for that matter!)
Please help!
Thanks,
Justin
Since you are using python 3, shouldn't you use
pip3 install -r requirements.txt -vvv
I assumed I would have to use pip as that is the cached dependancy in pipelines? It doesnt mention pip3....
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I updated the pip steps to use pip3 and it made no difference.
What I find most puzzling, is that at the end of the first step (pip3 install...)
this is the output:
changing mode of /usr/local/bin/flask to 755
So it definitely is there but, as you can see, Ive added that as a custom cache at the bottom, but the build still fails with the same error.
+ python -m flask run/usr/local/bin/python: No module named flask
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I read each step creates a new docker image. Could it be related?
I can't get it to work either. I've got a pretty simple:
pipelines:
default:
- step:
name: Build
caches:
- pip
- setuptools
.......
definitions:
caches:
- setuptools: setuptools ~/.cache/setuptools
But at the end of each build, I always get:
Cache "setuptools": Skipping upload for empty cache
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.