panoptes / panoptes-utils

A set of Astronomical utility functions. PANOPTES style. :hammer_and_wrench: :telescope: :stars:
https://panoptes-utils.readthedocs.io
MIT License
4 stars 9 forks source link

pip install panoptes-utils fails (missing dependencies and nonexistient ContextDecorator attribute) #224

Closed Patronics closed 4 years ago

Patronics commented 4 years ago

Attempting to run pip install panoptes-utils fails due to some missing dependencies (that can be installed manually through pip to resolve, but then it fails with the error Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-build-hWEZb0/panoptes-utils/setup.py", line 12, in <module> from panoptes_utils.version import __version__ File "panoptes_utils/__init__.py", line 348, in <module> class DelaySigTerm(contextlib.ContextDecorator): AttributeError: 'module' object has no attribute 'ContextDecorator'

This is on Ubuntu on the PAN14 device (intel NUC based). Also is panoptes-utils supposed to have been preinstalled with POCS? there doesn't seem to be any documentation on if you're supposed to install it separately or not?

`panoptes@panoptes-desktop:/var/panoptes/panoptes-utils$ pip install "panoptes-utils" Collecting panoptes-utils Downloading https://files.pythonhosted.org/packages/a6/c3/e9a09d681626cd8e4e105b93dbb36380260bbfd1d1b41a04c15c394644f0/panoptes-utils-0.0.3.tar.gz (51kB) 100% |████████████████████████████████| 51kB 799kB/s Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 1, in File "/tmp/pip-build-sPT3Bb/panoptes-utils/setup.py", line 9, in from configparser import ConfigParser ImportError: No module named configparser

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-sPT3Bb/panoptes-utils/ [1]+ Done gedit README.md panoptes@panoptes-desktop:/var/panoptes/panoptes-utils$ cd ~ panoptes@panoptes-desktop:~$ pip install "panoptes-utils" Collecting panoptes-utils Using cached https://files.pythonhosted.org/packages/a6/c3/e9a09d681626cd8e4e105b93dbb36380260bbfd1d1b41a04c15c394644f0/panoptes-utils-0.0.3.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 1, in File "/tmp/pip-build-PD3glQ/panoptes-utils/setup.py", line 9, in from configparser import ConfigParser ImportError: No module named configparser

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-PD3glQ/panoptes-utils/ panoptes@panoptes-desktop:~$ pip install "configparser" Collecting configparser Downloading https://files.pythonhosted.org/packages/7a/2a/95ed0501cf5d8709490b1d3a3f9b5cf340da6c433f896bbe9ce08dbe6785/configparser-4.0.2-py2.py3-none-any.whl Installing collected packages: configparser Successfully installed configparser-4.0.2 panoptes@panoptes-desktop:~$ pip install "panoptes-utils" Collecting panoptes-utils Using cached https://files.pythonhosted.org/packages/a6/c3/e9a09d681626cd8e4e105b93dbb36380260bbfd1d1b41a04c15c394644f0/panoptes-utils-0.0.3.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 1, in File "/tmp/pip-build-uS7i6o/panoptes-utils/setup.py", line 12, in from panoptes_utils.version import version File "panoptes_utils/init.py", line 8, in from astropy import units as u ImportError: No module named astropy

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-uS7i6o/panoptes-utils/ panoptes@panoptes-desktop:~$ pip install "astropy" Collecting astropy Downloading https://files.pythonhosted.org/packages/57/9d/69e74ec2eb8f6a2ac7c687ecac2703aabe3324dfafb83081780a96ce71ce/astropy-2.0.16-cp27-cp27mu-manylinux1_x86_64.whl (6.1MB) 100% |████████████████████████████████| 6.1MB 133kB/s Collecting pytest<3.7,>=2.8 (from astropy) Downloading https://files.pythonhosted.org/packages/d8/e9/73246a565c34c5f203dd78bc2382e0e93aa7a249cdaeba709099eb1bc701/pytest-3.6.4-py2.py3-none-any.whl (196kB) 100% |████████████████████████████████| 204kB 1.5MB/s Collecting numpy>=1.9.0 (from astropy) Using cached https://files.pythonhosted.org/packages/3a/5f/47e578b3ae79e2624e205445ab77a1848acdaa2929a00eeef6b16eaaeb20/numpy-1.16.6-cp27-cp27mu-manylinux1_x86_64.whl Collecting setuptools (from pytest<3.7,>=2.8->astropy) Downloading https://files.pythonhosted.org/packages/e1/b7/182161210a13158cd3ccc41ee19aadef54496b74f2817cc147006ec932b4/setuptools-44.1.1-py2.py3-none-any.whl (583kB) 100% |████████████████████████████████| 583kB 1.1MB/s Collecting py>=1.5.0 (from pytest<3.7,>=2.8->astropy) Downloading https://files.pythonhosted.org/packages/68/0f/41a43535b52a81e4f29e420a151032d26f08b62206840c48d14b70e53376/py-1.9.0-py2.py3-none-any.whl (99kB) 100% |████████████████████████████████| 102kB 2.0MB/s Collecting more-itertools>=4.0.0 (from pytest<3.7,>=2.8->astropy) Downloading https://files.pythonhosted.org/packages/2f/9d/dcfe59e213093695f108508af1214cf9cd95cc5489e46877ec5cb56369e5/more_itertools-5.0.0-py2-none-any.whl (52kB) 100% |████████████████████████████████| 61kB 2.4MB/s Collecting funcsigs; python_version < "3.0" (from pytest<3.7,>=2.8->astropy) Downloading https://files.pythonhosted.org/packages/69/cb/f5be453359271714c01b9bd06126eaf2e368f1fddfff30818754b5ac2328/funcsigs-1.0.2-py2.py3-none-any.whl Collecting six>=1.10.0 (from pytest<3.7,>=2.8->astropy) Using cached https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl Collecting attrs>=17.4.0 (from pytest<3.7,>=2.8->astropy) Using cached https://files.pythonhosted.org/packages/a2/db/4313ab3be961f7a763066401fb77f7748373b6094076ae2bda2806988af6/attrs-19.3.0-py2.py3-none-any.whl Collecting atomicwrites>=1.0 (from pytest<3.7,>=2.8->astropy) Downloading https://files.pythonhosted.org/packages/2c/a0/da5f49008ec6e9a658dbf5d7310a4debd397bce0b4db03cf8a410066bb87/atomicwrites-1.4.0-py2.py3-none-any.whl Collecting pluggy<0.8,>=0.5 (from pytest<3.7,>=2.8->astropy) Downloading https://files.pythonhosted.org/packages/f5/f1/5a93c118663896d83f7bcbfb7f657ce1d0c0d617e6b4a443a53abcc658ca/pluggy-0.7.1-py2.py3-none-any.whl Installing collected packages: setuptools, py, six, more-itertools, funcsigs, attrs, atomicwrites, pluggy, pytest, numpy, astropy Successfully installed astropy-2.0.16 atomicwrites-1.4.0 attrs-19.3.0 funcsigs-1.0.2 more-itertools-5.0.0 numpy-1.16.6 pluggy-0.7.1 py-1.9.0 pytest-3.6.4 setuptools-44.1.1 six-1.15.0 panoptes@panoptes-desktop:~$ pip install "panoptes-utils" Collecting panoptes-utils Using cached https://files.pythonhosted.org/packages/a6/c3/e9a09d681626cd8e4e105b93dbb36380260bbfd1d1b41a04c15c394644f0/panoptes-utils-0.0.3.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 1, in File "/tmp/pip-build-hWEZb0/panoptes-utils/setup.py", line 12, in from panoptes_utils.version import version File "panoptes_utils/init.py", line 348, in class DelaySigTerm(contextlib.ContextDecorator): AttributeError: 'module' object has no attribute 'ContextDecorator'

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-hWEZb0/panoptes-utils/`

wtgee commented 4 years ago

Thanks @Patronics for reporting. We've actually bumped panoptes-utils (and POCS) up to python 3.8 recently and I'm guessing that is the problem.

However, yes, we are working on an install script that should set up everything for you, unfortunately it's been a bit slower in coming than my original prediction. However, we have had people testing it recently so it would be great if you would test that method.

I need to merge https://github.com/panoptes/POCS/pull/978, which will fix one part of the script, then it should be good to test. Should be available after this holiday weekend.

wtgee commented 4 years ago

Hi @Patronics , just as an update, I will be merging https://github.com/panoptes/POCS/pull/980 today and after that it would probably be a good time to test the install script.

Patronics commented 4 years ago

I tried to install the latest version from git (in the development branch) using setup.py with python 3.8, but seem to be hitting a versioning conflict, where something in panoptes-utils requires pillow versions < 7, but pillow versions >=7.1.0 is required by 'bokeh', so the installation fails. How can I resolve this "pillow fight"?

panoptes@panoptes-desktop:/var/panoptes/panoptes-utils$ sudo python3.8 setup.py install
running install
running bdist_egg
running egg_info
writing src/panoptes_utils.egg-info/PKG-INFO
writing dependency_links to src/panoptes_utils.egg-info/dependency_links.txt
writing entry points to src/panoptes_utils.egg-info/entry_points.txt
writing requirements to src/panoptes_utils.egg-info/requires.txt
writing top-level names to src/panoptes_utils.egg-info/top_level.txt
writing manifest file 'src/panoptes_utils.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/panoptes
creating build/bdist.linux-x86_64/egg/panoptes/utils
copying build/lib/panoptes/utils/theskyx.py -> build/bdist.linux-x86_64/egg/panoptes/utils
creating build/bdist.linux-x86_64/egg/panoptes/utils/data
copying build/lib/panoptes/utils/data/metadata.py -> build/bdist.linux-x86_64/egg/panoptes/utils/data
copying build/lib/panoptes/utils/data/__init__.py -> build/bdist.linux-x86_64/egg/panoptes/utils/data
copying build/lib/panoptes/utils/horizon.py -> build/bdist.linux-x86_64/egg/panoptes/utils
creating build/bdist.linux-x86_64/egg/panoptes/utils/config
copying build/lib/panoptes/utils/config/cli.py -> build/bdist.linux-x86_64/egg/panoptes/utils/config
copying build/lib/panoptes/utils/config/__init__.py -> build/bdist.linux-x86_64/egg/panoptes/utils/config
copying build/lib/panoptes/utils/config/helpers.py -> build/bdist.linux-x86_64/egg/panoptes/utils/config
copying build/lib/panoptes/utils/config/server.py -> build/bdist.linux-x86_64/egg/panoptes/utils/config
copying build/lib/panoptes/utils/config/client.py -> build/bdist.linux-x86_64/egg/panoptes/utils/config
creating build/bdist.linux-x86_64/egg/panoptes/utils/social
copying build/lib/panoptes/utils/social/__init__.py -> build/bdist.linux-x86_64/egg/panoptes/utils/social
copying build/lib/panoptes/utils/social/twitter.py -> build/bdist.linux-x86_64/egg/panoptes/utils/social
copying build/lib/panoptes/utils/social/slack.py -> build/bdist.linux-x86_64/egg/panoptes/utils/social
creating build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers
copying build/lib/panoptes/utils/serial_handlers/protocol_buffers.py -> build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers
copying build/lib/panoptes/utils/serial_handlers/protocol_arduinosimulator.py -> build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers
copying build/lib/panoptes/utils/serial_handlers/__init__.py -> build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers
copying build/lib/panoptes/utils/serial_handlers/protocol_no_op.py -> build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers
copying build/lib/panoptes/utils/serial_handlers/protocol_hooked.py -> build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers
copying build/lib/panoptes/utils/serializers.py -> build/bdist.linux-x86_64/egg/panoptes/utils
creating build/bdist.linux-x86_64/egg/panoptes/utils/images
copying build/lib/panoptes/utils/images/fits.py -> build/bdist.linux-x86_64/egg/panoptes/utils/images
copying build/lib/panoptes/utils/images/focus.py -> build/bdist.linux-x86_64/egg/panoptes/utils/images
copying build/lib/panoptes/utils/images/plot.py -> build/bdist.linux-x86_64/egg/panoptes/utils/images
copying build/lib/panoptes/utils/images/__init__.py -> build/bdist.linux-x86_64/egg/panoptes/utils/images
copying build/lib/panoptes/utils/images/bayer.py -> build/bdist.linux-x86_64/egg/panoptes/utils/images
copying build/lib/panoptes/utils/images/cr2.py -> build/bdist.linux-x86_64/egg/panoptes/utils/images
copying build/lib/panoptes/utils/time.py -> build/bdist.linux-x86_64/egg/panoptes/utils
copying build/lib/panoptes/utils/__init__.py -> build/bdist.linux-x86_64/egg/panoptes/utils
copying build/lib/panoptes/utils/rs232.py -> build/bdist.linux-x86_64/egg/panoptes/utils
copying build/lib/panoptes/utils/error.py -> build/bdist.linux-x86_64/egg/panoptes/utils
copying build/lib/panoptes/utils/stars.py -> build/bdist.linux-x86_64/egg/panoptes/utils
copying build/lib/panoptes/utils/logging.py -> build/bdist.linux-x86_64/egg/panoptes/utils
copying build/lib/panoptes/utils/library.py -> build/bdist.linux-x86_64/egg/panoptes/utils
copying build/lib/panoptes/utils/utils.py -> build/bdist.linux-x86_64/egg/panoptes/utils
creating build/bdist.linux-x86_64/egg/panoptes/utils/database
copying build/lib/panoptes/utils/database/file.py -> build/bdist.linux-x86_64/egg/panoptes/utils/database
copying build/lib/panoptes/utils/database/base.py -> build/bdist.linux-x86_64/egg/panoptes/utils/database
copying build/lib/panoptes/utils/database/__init__.py -> build/bdist.linux-x86_64/egg/panoptes/utils/database
copying build/lib/panoptes/utils/database/memory.py -> build/bdist.linux-x86_64/egg/panoptes/utils/database
copying build/lib/panoptes/__init__.py -> build/bdist.linux-x86_64/egg/panoptes
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/theskyx.py to theskyx.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/data/metadata.py to metadata.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/data/__init__.py to __init__.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/horizon.py to horizon.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/config/cli.py to cli.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/config/__init__.py to __init__.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/config/helpers.py to helpers.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/config/server.py to server.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/config/client.py to client.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/social/__init__.py to __init__.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/social/twitter.py to twitter.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/social/slack.py to slack.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers/protocol_buffers.py to protocol_buffers.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers/protocol_arduinosimulator.py to protocol_arduinosimulator.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers/__init__.py to __init__.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers/protocol_no_op.py to protocol_no_op.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/serial_handlers/protocol_hooked.py to protocol_hooked.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/serializers.py to serializers.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/images/fits.py to fits.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/images/focus.py to focus.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/images/plot.py to plot.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/images/__init__.py to __init__.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/images/bayer.py to bayer.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/images/cr2.py to cr2.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/time.py to time.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/__init__.py to __init__.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/rs232.py to rs232.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/error.py to error.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/stars.py to stars.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/logging.py to logging.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/library.py to library.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/utils.py to utils.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/database/file.py to file.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/database/base.py to base.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/database/__init__.py to __init__.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/utils/database/memory.py to memory.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/panoptes/__init__.py to __init__.cpython-38.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
installing scripts to build/bdist.linux-x86_64/egg/EGG-INFO/scripts
running install_scripts
running build_scripts
creating build/bdist.linux-x86_64/egg/EGG-INFO/scripts
copying build/scripts-3.8/cr2-to-jpg -> build/bdist.linux-x86_64/egg/EGG-INFO/scripts
changing mode of build/bdist.linux-x86_64/egg/EGG-INFO/scripts/cr2-to-jpg to 775
copying src/panoptes_utils.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying src/panoptes_utils.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying src/panoptes_utils.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying src/panoptes_utils.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying src/panoptes_utils.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO
copying src/panoptes_utils.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying src/panoptes_utils.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
creating 'dist/panoptes_utils-0.2.23.dev0-py3.8.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing panoptes_utils-0.2.23.dev0-py3.8.egg
removing '/usr/local/lib/python3.8/dist-packages/panoptes_utils-0.2.23.dev0-py3.8.egg' (and everything under it)
creating /usr/local/lib/python3.8/dist-packages/panoptes_utils-0.2.23.dev0-py3.8.egg
Extracting panoptes_utils-0.2.23.dev0-py3.8.egg to /usr/local/lib/python3.8/dist-packages
panoptes-utils 0.2.23.dev0 is already the active version in easy-install.pth
Installing cr2-to-jpg script to /usr/local/bin
Installing panoptes-config-server script to /usr/local/bin

Installed /usr/local/lib/python3.8/dist-packages/panoptes_utils-0.2.23.dev0-py3.8.egg
Processing dependencies for panoptes-utils==0.2.23.dev0
error: Pillow 6.2.2 is installed but pillow>=7.1.0 is required by {'bokeh'}
wtgee commented 4 years ago

Hi @Patronics, thanks for reporting this back. #228 is open right now, with the solution coming in #227, hopefully later today.

Can you remind me again what hardware you are trying to install this on?

How can I resolve this "pillow fight"?

+1 for clever. :rofl:

Patronics commented 4 years ago

Thanks, our hardware is sort of a Frankenstein of the two generations of Panoptes units, running in Ubuntu on a NUC.