titusjan / argos

Argos: a data viewer that can read HDF5, NetCDF4, and other file formats.
GNU General Public License v3.0
178 stars 26 forks source link

Problems installing on Windows with Conda #5

Closed rsignell-usgs closed 3 years ago

rsignell-usgs commented 7 years ago

I tried installing Argos on Windows using Conda thusly:

conda create -n ARGOS python=3 numpy scipy netcdf4 h5py pandas pillow
activate ARGOS
pip install pyqt5
pip install pyqtgraph
pip install argos

but running

python -m argos.main

returns

from PyQt5 import QtCore, QtGui, QtWidgets, QtSvg
ImportError: DLL load failed: The specified module could not be found.

@ocefpaf tells me this is a known problem with the defaults channel at Continuum.

titusjan commented 7 years ago

It seems that installing PyQt with pip doesn't work together with Conda. I don't know if this is a temporary issue or permanent.

Anyway, try uninstalling PyQt with pip uninstall pyqt5 and then installing it via conda install pyqt. This worked for the guy in issue #1.

rsignell-usgs commented 7 years ago

Unfortunately conda does not yet have pyqt5 on conda-forge, but they are working on it: https://github.com/conda-forge/staged-recipes/pull/2210#issuecomment-273059844

bilderbuchi commented 7 years ago

I just installed pyqt with conda and that gave me version 5.6.something.

ocefpaf commented 7 years ago

Like @rsignell-usgs mentioned above, outside of the conda-forge realm, it should work. However, many rely on conda-forge to build their envs and get more software than just argos.

An alternative, until we fix Qt in conda-forge, is to use an environment.yml with the dependencies from defaults instead.

bilderbuchi commented 7 years ago

Ah, I was not aware that conda-forge replaces/overrides(?) the default conda package environment, sorry.

ocefpaf commented 7 years ago

It does note replace or overrides. It dependents on how you use it. If conda-forge is on top of defaults in your .condarc file (or environment.yml) conda will prefer conda-forge packages. The same is true doe defaults if you revert the order.

TL;DR conda-forge is note 100% compatible with defaults because conda-forge is almost always more up-to-date with the exception of Qt due to CI time constraints. So the channel order matters.

bilderbuchi commented 7 years ago

Alright, thanks for clearing this up.

rsignell-usgs commented 7 years ago

I tried building on Windows using only the defaults channel, but the version of pyqt on Windows there is still at 4.11.4, so no go.

Here's what I did:

conda env create -f argos_environment.yml

with argos_environment.yml:

name: ARGOS
channels:
  - defaults
dependencies:
  - python=3.5
  - numpy
  - pyqt
  - h5py
  - netcdf4
  - pillow
  - scipy
  - pandas
  - pip
  - pip:
    - pyqtgraph
    - argos

And listing the pyqt version results:

C:\Users\rsignell\documents\github> activate ARGOS
(ARGOS) C:\Users\rsignell\documents\github>conda list pyqt
# packages in environment at C:\Users\rsignell\AppData\Local\Continuum\Miniconda
3\envs\ARGOS:
#
pyqt                      4.11.4                   py35_7    defaults
pyqtgraph                 0.9.10                   py35_1    defaults
bilderbuchi commented 7 years ago

Try leaving out pyqtgraph and installing that one via pip

rsignell-usgs commented 7 years ago

@bilderbuchi , indeed leaving out pyqtgraph (I updated the environment.yml above to remove pyqtgraph and install using pip), it allowed conda to find a more recent version of pyqt:

(ARGOS) C:\Users\rsignell\documents\github>conda list pyqt
# packages in environment at C:\Users\rsignell\AppData\Local\Continuum\Miniconda
3\envs\ARGOS:
#
pyqt                      5.6.0                    py35_1    defaults
pyqtgraph                 0.10.0                    <pip>

So progress!

Unfortunately, when I run python -m argos.main, however, I get this:

2017-01-17_12-18-20

Here's the full listing from my environment, in case anything obvious is wrong:

(ARGOS) C:\Users\rsignell\documents\github>conda list
# packages in environment at C:\Users\rsignell\AppData\Local\Continuum\Miniconda
3\envs\ARGOS:
#
argos                     0.2.1                     <pip>
bzip2                     1.0.6                    vc14_3  [vc14]  defaults
curl                      7.45.0                   vc14_1  [vc14]  defaults
freetype                  2.5.5                    vc14_1  [vc14]  defaults
h5py                      2.6.0               np111py35_2    defaults
hdf5                      1.8.15.1                 vc14_4  [vc14]  defaults
icu                       57.1                     vc14_0  [vc14]  defaults
jpeg                      8d                       vc14_2  [vc14]  defaults
libnetcdf                 4.3.3.1                  vc14_5  [vc14]  defaults
libpng                    1.6.27                   vc14_0  [vc14]  defaults
libtiff                   4.0.6                    vc14_2  [vc14]  defaults
mkl                       2017.0.1                      0    defaults
netcdf4                   1.2.4               np111py35_0    defaults
numpy                     1.11.3                   py35_0    defaults
openssl                   1.0.2j                   vc14_0  [vc14]  defaults
pandas                    0.19.2              np111py35_1    defaults
pillow                    3.4.2                    py35_0    defaults
pip                       9.0.1                    py35_1    defaults
pyqt                      5.6.0                    py35_1    defaults
pyqtgraph                 0.10.0                    <pip>
python                    3.5.2                         0    defaults
python-dateutil           2.6.0                    py35_0    defaults
pytz                      2016.10                  py35_0    defaults
qt                        5.6.2                    vc14_0  [vc14]  defaults
scipy                     0.18.1              np111py35_1    defaults
setuptools                27.2.0                   py35_1    defaults
sip                       4.18                     py35_0    defaults
six                       1.10.0                   py35_0    defaults
vs2015_runtime            14.0.25123                    0    defaults
wheel                     0.29.0                   py35_0    defaults
zlib                      1.2.8                    vc14_3  [vc14]  defaults
rsignell-usgs commented 7 years ago

The above argos_environment.yml works great on Linux though. :stuck_out_tongue:

titusjan commented 7 years ago

Is there any output on the console? Perhaps if you start Argos with debug messages. Can you try to start with python -m argos.main -l debug please?

rsignell-usgs commented 7 years ago

Okay, I tried it, but you aren't going to like it: 2017-01-18_6-47-26

titusjan commented 7 years ago

I looked in the code. Directly after main.py:82 Argos will try to import PyQt. So I think there is still an issue with your PyQt installation. Let's try to confirm this by bypassing Argos and just import PyQt from Python. Can you start python and then type the following on the Python command prompt: from PyQt5 import QtCore, QtGui, QtWidgets. I expect this gives the same error behaviour.

rsignell-usgs commented 7 years ago

You are correct! It gives the same behaviour. I guess pyqt from the defaults channel doesn't work;

(ARGOS) C:\Users\rsignell\documents\github>conda list qt
# packages in environment at C:\Users\rsignell\AppData\Local\Continuum\Miniconda3\envs\ARGOS:
#
pyqt                      5.6.0                    py35_1    defaults
qt                        5.6.2                    vc14_0  [vc14]  defaults