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

R Doesn't Seem To Work With SoS notebooks However, It Does Work In R Markdown #341

Closed
yr542 opened this issue Jan 30, 2023 · 20 comments
Closed

Comments

@yr542
Copy link

yr542 commented Jan 30, 2023

It seems that I am having an issue running R 4.2.2 on the SoS notebook but it works fine in an R markdown file. I am working on an HPC (runs Linux) and using a Mac Air.

I wrote the following command:

sessionInfo()

Then I got the subsequent error:

"cannot import name 'Sequence' from 'collections' (/home/yr2446/miniconda3/lib/python3.10/collections/__init__.py)"

I tried the following solution R Issues StackOverflow where I ran the following:

pip install -U mkdoc

however this issue persists. Is there anything I can do to resolve this issue so that I can use R in a SoS notebook?

@BoPeng
Copy link
Contributor

BoPeng commented Jan 31, 2023

"cannot import name 'Sequence' from 'collections'

This is a compatibility bug (with Python 3.8 or something) that has been fixed last year. Could you update your version of sos related pacakges?

@yr542
Copy link
Author

yr542 commented Jan 31, 2023

I am running sos 0.23.4 for Python 3.10.10 and my version of python is 3.10.8.

@BoPeng
Copy link
Contributor

BoPeng commented Jan 31, 2023

What about your version of sos-notebook?

@yr542
Copy link
Author

yr542 commented Jan 31, 2023

When I run

sos --version

it tells me:

sos 0.23.4 for Python 3.10.10

@yr542 yr542 changed the title R Doesn't Seem To Work With SoS notebooks but it does work in an R Markdown R Doesn't Seem To Work With SoS notebooks However, It Does Work In A R Markdown Jan 31, 2023
@yr542 yr542 changed the title R Doesn't Seem To Work With SoS notebooks However, It Does Work In A R Markdown R Doesn't Seem To Work With SoS notebooks However, It Does Work In R Markdown Jan 31, 2023
@BoPeng
Copy link
Contributor

BoPeng commented Jan 31, 2023

I meant sos-notebook, run something like

pip list | grep sos

@yr542
Copy link
Author

yr542 commented Jan 31, 2023

The code you mentioned:

pip list | grep sos

generates the following output:

jupyterlab-sos 0.9.0

sos 0.23.4

sos-bash 0.20.0

sos-notebook 0.23.4

sos-pbs 0.20.8

sos-python 0.18.4

sos-r 0.19.6

@BoPeng
Copy link
Contributor

BoPeng commented Feb 1, 2023

Ok, this looks like a problem with sos-r. I have pushed a fix and released sos-r 0.19.7. Could you test it?

@yr542
Copy link
Author

yr542 commented Feb 1, 2023

I tried to update sos-r using the following command:

pip install sos-r -U

then I opened up SoS and tried to run one R command:

sessionInfo()

and I kept getting the following error:

asyncio.run() cannot be called from a running event loop


I ran the following command to know the versions:

pip list | grep sos

and got the following:

jupyterlab-sos 0.9.0

sos 0.23.4

sos-bash 0.20.0

sos-notebook 0.23.4

sos-pbs 0.20.8

sos-python 0.18.4

sos-r 0.19.7

@BoPeng
Copy link
Contributor

BoPeng commented Feb 1, 2023

Let me update the docker release of sos-notebook so that we can try to reproduce the problem or compare the versions there.

@BoPeng
Copy link
Contributor

BoPeng commented Feb 1, 2023

ok, I updated to the latest versions of the jupyter tool stack with python 3.10 and can reproduce your problem. I cannot yet figure out what has caused it though.

@gaow
Copy link
Member

gaow commented Feb 4, 2023

It seems that in Python 3.10 Sequence has been moved to collections.abc, and importing from collections.abc instead should work?

@BoPeng
Copy link
Contributor

BoPeng commented Feb 4, 2023

That has been fixed, but the async issue arises again. Looks like some upstream package enhanced async support.

@BoPeng
Copy link
Contributor

BoPeng commented Feb 18, 2023

Downgrading jupyter-client from 8.0.x (e.g. 8.0.3, 8.0.0, 8.0.0a0) to 7.x.x (e.g. 7.4.9) fixes the problem.

8.0.0a0:  30cbf9719551d095dd099682d7cb8ebce2a9a8af

I think what is happening is ipython/ipykernel@aefef5d

Namely the upstream has used native async all the time and sos-notebook has been using a hybrid approach. So the new code

        reply_content = self.do_execute(
            code, silent, store_history,
            user_expressions, allow_stdin,
        )
        if inspect.isawaitable(reply_content):
            reply_content = await reply_content

accept pure do_execute, or async do_execute, but not our do_execute that calls asyncio.run.

@yr542
Copy link
Author

yr542 commented Feb 18, 2023

When I try

pip install notebook==7.4.9

it says

ERROR: Could not find a version that satisfies the requirement notebook==7.4.9 (from versions: 4.0.0, 4.0.1, 4.0.2, 4.0.4, 4.0.5, 4.0.6, 4.1.0, 4.2.0b1, 4.2.0, 4.2.1, 4.2.2, 4.2.3, 4.3.0, 4.3.1, 4.3.2, 4.4.0, 4.4.1, 5.0.0b1, 5.0.0b2, 5.0.0rc1, 5.0.0rc2, 5.0.0, 5.1.0rc1, 5.1.0rc2, 5.1.0rc3, 5.1.0, 5.2.0rc1, 5.2.0, 5.2.1rc1, 5.2.1, 5.2.2, 5.3.0rc1, 5.3.0, 5.3.1, 5.4.0, 5.4.1, 5.5.0rc1, 5.5.0, 5.6.0rc1, 5.6.0, 5.7.0, 5.7.1, 5.7.2, 5.7.3, 5.7.4, 5.7.5, 5.7.6, 5.7.8, 5.7.9, 5.7.10, 5.7.11, 5.7.12, 5.7.13, 5.7.14a0, 5.7.14, 5.7.15, 5.7.16, 6.0.0rc1, 6.0.0, 6.0.1, 6.0.2, 6.0.3, 6.1.0rc1, 6.1.0, 6.1.1, 6.1.2, 6.1.3, 6.1.4, 6.1.5, 6.1.6, 6.2.0, 6.3.0, 6.4.0a0, 6.4.0a1, 6.4.0rc0, 6.4.0, 6.4.1, 6.4.2, 6.4.3, 6.4.4, 6.4.5, 6.4.6, 6.4.7, 6.4.8, 6.4.9, 6.4.10, 6.4.11, 6.4.12, 6.5.0a0, 6.5.0b0, 6.5.0rc0, 6.5.0, 6.5.1, 6.5.2, 7.0.0a1, 7.0.0a2, 7.0.0a3, 7.0.0a4, 7.0.0a5, 7.0.0a6, 7.0.0a7, 7.0.0a8, 7.0.0a9, 7.0.0a10, 7.0.0a11, 7.0.0a12, 7.0.0a13)
ERROR: No matching distribution found for notebook==7.4.9

I believe the notebook must be under version 8.x.x in this case?

Just in case I did

pip install notebook==7.0.0a13

and then started a new Jupyter notebooks session. I tried using R markdown and types in sessionInfo() and it worked. However, when I tried to use SoS while it did connect, when I try to write down code sessionInfo() it says:

[0]:

NameError Traceback (most recent call last)
script_704958943456885391 in
----> sessionInfo()

NameError: name 'sessionInfo' is not defined

It still seems to not work.

@BoPeng
Copy link
Contributor

BoPeng commented Feb 18, 2023

You need to downgrade jupyter-client, not notebook.

However, I am working on a new version of sos-notebook corresponding to jupyter-client >= 8.0.0. It is roughly working but more testing is needed. I plan to release it later today.

@yr542
Copy link
Author

yr542 commented Feb 18, 2023

I did the following

I updated the notebooks. Then I did:

pip install jupyter-client==7.4.9

however, it does not change that I get the following error in SoS and not in R Markdown:

[0]:

NameError Traceback (most recent call last)
script_5915805525780421572 in
----> sessionInfo()

NameError: name 'sessionInfo' is not defined

@BoPeng
Copy link
Contributor

BoPeng commented Feb 18, 2023

I have released sos-notebook 0.24.0, sos-r 0.20.0, sos-python 0.20.0 etc. Basically all language modules need to be upgraded with the update of sos-notebook, which now depends on jupyter-client >= 8.0.0.

Please let me know if you notice any problem with this release.

@yr542
Copy link
Author

yr542 commented Feb 18, 2023

I did a clean install of SoS. I then did the following command to see:

pip list | grep sos

I got the following:

jupyterlab-sos 0.9.0
sos 0.24.0
sos-bash 0.21.0
sos-notebook 0.24.0
sos-pbs 0.20.8
sos-python 0.20.0
sos-r 0.20.0

I checked R markdown and SoS and both worked for the sessionInfo command. Thank you.

@BoPeng BoPeng closed this as completed Feb 19, 2023
@gaow
Copy link
Member

gaow commented Aug 28, 2023

@BoPeng we are still having an issue when we install sos-notebook from conda-forge. Turns out we may need to update the recipe:

https://github.com/conda-forge/sos-notebook-feedstock/blob/da2807e11bb6c565460b256bb1fd16b170d054af/recipe/meta.yaml#L43

Here it still says juptyer_client > 7. We need to make it >8.0.0. Also perhaps sos>0.19.0?

(there maybe a few other sos-notebook problems that we will try to better understand, organize and post, so later we can fix and release a new version -- please expect our other follow ups!)

@gaow gaow reopened this Aug 28, 2023
@BoPeng BoPeng closed this as completed Sep 25, 2023
@BoPeng BoPeng reopened this Sep 25, 2023
@BoPeng
Copy link
Contributor

BoPeng commented Sep 25, 2023

It can be a good time to fix this with the new release (for #349),

@BoPeng BoPeng closed this as completed Jun 11, 2024
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

3 participants