Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when try to make iris locally. #592

Open
v94401 opened this issue Oct 8, 2020 · 7 comments
Open

Error when try to make iris locally. #592

v94401 opened this issue Oct 8, 2020 · 7 comments

Comments

@v94401
Copy link

v94401 commented Oct 8, 2020

Hi All,

We encounter following error when try to test iris locally:

____________________________________________________________________________________ ERROR collecting test/test_irisapi.py _____________________________________________________________________________________ ImportError while importing test module '/Users/i505939/Projects/iris/test/test_irisapi.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: env/lib/python2.7/site-packages/_pytest/python.py:507: in _importtestmodule mod = self.fspath.pyimport(ensuresyspath=importmode) env/lib/python2.7/site-packages/py/_path/local.py:704: in pyimport __import__(modname) env/lib/python2.7/site-packages/gevent-1.4.0-py2.7-macosx-10.15-x86_64.egg/gevent/builtins.py:96: in __import__ result = _import(*args, **kwargs) env/lib/python2.7/site-packages/_pytest/assertion/rewrite.py:304: in load_module exec(co, mod.__dict__) test/test_irisapi.py:7: in <module> from iris.api import ReqBodyMiddleware, AuthMiddleware, Healthcheck env/lib/python2.7/site-packages/gevent-1.4.0-py2.7-macosx-10.15-x86_64.egg/gevent/builtins.py:96: in __import__ result = _import(*args, **kwargs) src/iris/api.py:17: in <module> from urllib.parse import parse_qs env/lib/python2.7/site-packages/gevent-1.4.0-py2.7-macosx-10.15-x86_64.egg/gevent/builtins.py:96: in __import__ result = _import(*args, **kwargs) E ImportError: No module named parse _____________________________________________________________________________________ ERROR collecting test/test_sender.py _____________________________________________________________________________________ ImportError while importing test module '/Users/i505939/Projects/iris/test/test_sender.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: env/lib/python2.7/site-packages/_pytest/python.py:507: in _importtestmodule mod = self.fspath.pyimport(ensuresyspath=importmode) env/lib/python2.7/site-packages/py/_path/local.py:704: in pyimport __import__(modname) env/lib/python2.7/site-packages/gevent-1.4.0-py2.7-macosx-10.15-x86_64.egg/gevent/builtins.py:96: in __import__ result = _import(*args, **kwargs) env/lib/python2.7/site-packages/_pytest/assertion/rewrite.py:304: in load_module exec(co, mod.__dict__) test/test_sender.py:9: in <module> from iris.bin.sender import init_sender env/lib/python2.7/site-packages/gevent-1.4.0-py2.7-macosx-10.15-x86_64.egg/gevent/builtins.py:96: in __import__ result = _import(*args, **kwargs) src/iris/bin/sender.py:26: in <module> from iris.api import load_config env/lib/python2.7/site-packages/gevent-1.4.0-py2.7-macosx-10.15-x86_64.egg/gevent/builtins.py:96: in __import__ result = _import(*args, **kwargs) src/iris/api.py:17: in <module> from urllib.parse import parse_qs env/lib/python2.7/site-packages/gevent-1.4.0-py2.7-macosx-10.15-x86_64.egg/gevent/builtins.py:96: in __import__ result = _import(*args, **kwargs) E ImportError: No module named parse

We've installed python parse module and the error still persists.
The same error we get during docker image creation as well.

Please advise.

Regards
Valentin

@sandipb
Copy link

sandipb commented Oct 8, 2020

Hi, Iris has been on Python3 only since last year as 2.7 is now EOL-ed. You would need to use Python3 in your docker image for this app.

@v94401
Copy link
Author

v94401 commented Oct 9, 2020

Hi, We are using py3 branch of Iris, but still we get errors during build. Do we need to adapt something or it is adapted in this branch(py3).

Regards
Valentin

@sandipb
Copy link

sandipb commented Oct 9, 2020

I think the master is already on python3? Can you switch to the master and show the exact problem? Because the snippet you showed earlier, i.e.

packages/gevent-1.4.0-py2.7-macosx-10.15-x86_64.egg/gevent/builtins.py:96: in __import__ result = _import(*args, **kwargs) src/iris/api.py:17: in <module> from urllib.parse import parse_qs env/lib/python2.7/site-packages/gevent-1.4.0-py2.7-macosx-10.15-x86_64.egg/gevent/builtins.py:96: in __import__ result = _import(*args, **kwargs) E ImportError: No module named parse

Is definitely a "Python 3 code being run in Python 2" problem (parse_qs was moved from urllib to urllib.parse in Python 3)

@v94401
Copy link
Author

v94401 commented Oct 19, 2020

Hello,

We have tested with master, unfortunately we couldn't build a container. We've checkout "py3" and with it we managed to build a container, but when we try to start it, this is the output:

/bin/sh: 0: Can't open sudo

We managed to adapt iris.yaml file to use python3 for virtualenv and pip3:

- type: "shell" 91 inline: 92 - 'sudo apt-get -y install curl python3-dev python3-pip python3-wheel python3-venv python-pip uwsgi unzip virtualenv sudo python-dev libyaml-dev libsasl2-dev libldap2-dev nginx uwsgi-plugin-python u wsgi-plugin-gevent-python uwsgi-plugin-python3 mysql-client && sudo rm -rf /var/cache/apt/archives/*' 93 - sudo useradd -m -s /bin/bash iris 94 - sudo chown -R iris:iris /home/iris /var/log/nginx /var/lib/nginx 95 - sudo -Hu iris mkdir -p /home/iris/var/log/uwsgi /home/iris/var/log/nginx /home/iris/var/run 96 - sudo mv /tmp/repo /home/iris/source 97 - "sudo chown -R iris:iris /home/iris/source" 98 - sudo mv /home/iris/source/ops/config/systemd/uwsgi-iris.service /etc/systemd/system/uwsgi-iris.service 99 - sudo mv /home/iris/source/ops/config/systemd/nginx-iris.service /etc/systemd/system/nginx-iris.service 100 - sudo mv /home/iris/source/ops/config/systemd/nginx-iris.socket /etc/systemd/system/nginx-iris.socket 101 - sudo -Hu iris ln -s /home/iris/source/ops/daemons /home/iris/daemons 102 - sudo -Hu iris ln -s /home/iris/source/ops/entrypoint.py /home/iris/entrypoint.py 103 - sudo -Hu iris ln -s /home/iris/source/db /home/iris/db 104 - sudo -Hu iris mkdir /home/iris/config 105 - sudo -Hu iris cp /home/iris/source/configs/config.yaml /home/iris/config/config.yaml 106 - sudo -Hu iris python3 -m venv /home/iris/env 107 - sudo -Hu iris /bin/bash -c 'source /home/iris/env/bin/activate && cd /home/iris/source && pip3 install ".[prometheus,kazoo]"'

but still same error when trying to start container.

Please advise.

Valentin

@lukdz
Copy link

lukdz commented Dec 7, 2020

Did you mange to fix this issue?
After some help fixing missing README.md, I'm stuck with same error: #573 (comment).

@mhaddon
Copy link

mhaddon commented Feb 26, 2021

With the context of the repository root, use this dockerfile:

FROM ubuntu:16.04

RUN apt-get update && apt-get -y dist-upgrade \
    && apt-get -y install python3-pip uwsgi python3-venv sudo python3-dev libyaml-dev \
       libsasl2-dev libldap2-dev nginx uwsgi-plugin-python3 mysql-client \
    && rm -rf /var/cache/apt/archives/*

RUN useradd -m -s /bin/bash iris

COPY setup.py /home/iris/setup.py
COPY ops/entrypoint.py /home/iris/entrypoint.py
ADD ops/daemons /home/iris/daemons
ADD db /home/iris/db
ADD src /home/iris/

RUN chown -R iris:iris /home/iris /var/log/nginx /var/lib/nginx \
    && sudo -Hu iris mkdir -p /home/iris/var/log/uwsgi /home/iris/var/log/nginx /home/iris/var/run \
    && sudo -Hu iris python3 -m venv /home/iris/env \
    && sudo -Hu iris /bin/bash -c 'source /home/iris/env/bin/activate && cd /home/iris && ls -al /home/iris && python3 setup.py install'

EXPOSE 16649

CMD ["sudo", "-Hu", "iris", "bash", "-c", "source /home/iris/env/bin/activate && python3 /home/iris/entrypoint.py"]

Gets further, but does not quite work still. I get ascii ordinal errors when trying to build the ui.

@mighq
Copy link
Contributor

mighq commented Nov 4, 2021

See #573 issue, which seems to be related/duplicate and is more alive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants