by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Thomas A Caswell
    @tacaswell
    I am not sure what you mean by " had already installed pyepics under the epics directory", but package installation is one of the surprisingly tricky things about this operation. This is compounded by pyepics upstream making some choices about their packaging that in my view complicate getting it correct
    Tyler Pennebaker
    @ZryletTC

    Hi! I'm running through the bluesky tutorial and installing the packages in a conda environment, I ran into an error when opening ipython with the --matplotlib=qt5 flag:

    Original error was: dlopen(/Users/pennebak/miniconda3/envs/bluesky/lib/python3.7/site-packages/numpy/core/_multiarray_umath.cpython-37m-darwin.so, 2): Library not loaded: @rpath/libgfortran.4.dylib
      Referenced from: /Users/pennebak/miniconda3/envs/bluesky/lib/libcblas.3.dylib
      Reason: image not found

    Have any of you seen this before?

    Thomas A Caswell
    @tacaswell
    that is a sign that your conda enviroment is not correct. What do you get for conda list and pip list ?
    Tyler Pennebaker
    @ZryletTC
    Thomas A Caswell
    @tacaswell
    Rescuing environments that are not consistent is frequently not worth doing (better to delete it and start over!)
    Tyler Pennebaker
    @ZryletTC
    Yeah this is from a fresh create
    Thomas A Caswell
    @tacaswell
    it looks like you conda installed everything instead of using pip?
    Tyler Pennebaker
    @ZryletTC
    yeah. was i not meant to?
    Thomas A Caswell
    @tacaswell
    the install instructions we have tested use conda to get a base python, and pip for everything else
    but installing from conda should work\
    numpy/numpy#12970 <- I think that issue is related?
    Tyler Pennebaker
    @ZryletTC
    Yeah, it looks like it. I'll try some of the recommendations
    Tyler Pennebaker
    @ZryletTC
    Hmm, what finally worked was reinstalling from conda-forge instead of nsls2forge
    Thomas A Caswell
    @tacaswell
    if you compare conda list from the working an non working envs are there any obvious issues?
    My knee-jerk guess is we have something on nsls2forge that pins to the broken version of numpy
    Tyler Pennebaker
    @ZryletTC
    Yeah, that was my guess. Checking now
    No it looks the numpy is consistent between the two.
    Thomas A Caswell
    @tacaswell
    how about libblas?
    Tyler Pennebaker
    @ZryletTC
    Same version, different build numbers
    Thomas A Caswell
    @tacaswell
    that i likely the culprit
    Tyler Pennebaker
    @ZryletTC
    libblas 3.8.0 16_openblas conda-forge
    vs
    libblas 3.8.0 14_openblas conda-forge
    Thomas A Caswell
    @tacaswell
    which one is the working one?
    Tyler Pennebaker
    @ZryletTC
    oh sorry, 16 is the working one
    could this also have been the problem? or does the libblas cause this:
    working: libgfortran 4.0.0 2 conda-forge
    vs
    failing: libgfortran 4.0.0 0 nsls2forge
    Thomas A Caswell
    @tacaswell
    yikes, that is something we should fix
    yangdl-github
    @yangdl-github
    Dear all,
    I ues bluesky to count PILATUS detector.
    Now, I want to display the image after counting.
    But I don't know how to do it.
    Thanks for any advice!
    Pete R Jemian
    @prjemian
    I'm working up a tutorial on EPICS area detector (using ADSimDetector). It's a Jupyter notebook, still in a draft form, but has some words in between the lines of bluesky/ophyd code. Perhaps this may be useful to you? Feedback is welcome. https://github.com/BCDA-APS/use_bluesky/blob/master/lessons/lesson6.ipynb
    yangdl-github
    @yangdl-github
    Thanks, Pete. @prjemian I will try.
    Robert Tang-Kong
    @tangkong
    Perhaps a solved problem, but what is the best way to plot the derivative of the collected data, preferably directly overlaid on the collected data shown by the besteffort callback?
    Thomas A Caswell
    @tacaswell
    BEC is a monolith that we don't suggest looking inside of, but @danielballan is working on a better replacement
    yangdl-github
    @yangdl-github
    I have shown image from EPICS PV data. @prjemian Pete's lesson6 is very helpful.
    Thanks all of you.
    Jeremy Stashluk
    @stashlukj
    The loop for the asyncio.DatagramProtocol that runs my device seems to stop when I call the RE. Is there a good way to make sure they both run?
    Thomas A Caswell
    @tacaswell
    What version of bluesky are you using?
    Jeremy Stashluk
    @stashlukj
    1.6.2
    Thomas A Caswell
    @tacaswell
    hmm, ok so it isn't the easy fix (in 1.6 we pushed the event loop to a background thread)
    are you call the RE from inside another event loop?
    Jeremy Stashluk
    @stashlukj
    I use one event loop to create the datagram endpoints. I use run_until_complete() to create the endpoints. The protocol instantiates the devices during this time. Once the devices are created, I pass the loop to the RunEngine, but the datagram_received() for my protocol never fires.
    Thomas A Caswell
    @tacaswell
    ok, so the issue is that despite being built on top of the event loop, the public interface on the RE is tuned to be used from a command line
    so when you do RE(...) we do a lot of work to make sure that it blocks until interrupted or it finishes (which is not helpful to you here because it is now blocking the task it was triggered in and I suspect you have deadlocks...)
    what we need to do here is factor out validation / book-keeping etc work that is done in the top of __call__ https://github.com/bluesky/bluesky/blob/3e298fde0abfba8ad99aea535ff4ee37c79d755a/bluesky/run_engine.py#L688 and then write an async version of _resume-task https://github.com/bluesky/bluesky/blob/3e298fde0abfba8ad99aea535ff4ee37c79d755a/bluesky/run_engine.py#L856
    at least in thoery
    Jeremy Stashluk
    @stashlukj
    Yes. I tried waiting on a Status() object during kickoff() to be set_finished() by the first message.
    Thomas A Caswell
    @tacaswell
    you could also do something like https://github.com/bluesky/bluesky-queueserver and push the RE to a background thread (make sure you don't use the default "run while idle" function which uses Qt and will cause problems) and it's own event loop
    can you make an issue on bluesky/bluesky describing this and with a hopefully runnable version of what you are trying to do?
    Jeremy Stashluk
    @stashlukj
    I will take a look. Thanks! Yes. I'll try to make a minimal example for this.
    Thomas A Caswell
    @tacaswell
    the RE started very monolithic and we have been slowly pulling it apart
    the next part of that is to further de-couple the plan running logic (to among other things allow there to be a "please run this plan and tell me when it is done" Msg) which I think will also help with trying to use the RE from within another asyncio event loop
    I'm curious what you are trying to do with bluesky
    Jeremy Stashluk
    @stashlukj
    I make ground-penetrating radars. Our "radar board" gives us a radar waveform of 1024 samples x 100 Hz in addition to a survey-wheel encoder, accelerometer, battery. We integrate this stuff with GPS, etc to find stuff underground.
    Thomas A Caswell
    @tacaswell
    that is pretty cool :)