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 importing within spyder, not occuring outside of spyder #22038

Open
6 of 9 tasks
Miguel-LlamasLanza opened this issue Apr 29, 2024 · 1 comment
Open
6 of 9 tasks

Comments

@Miguel-LlamasLanza
Copy link

Miguel-LlamasLanza commented Apr 29, 2024

Issue Report Checklist

  • Searched the issues page for similar reports
  • Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
  • Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
  • Tried basic troubleshooting (if a bug/error)
    • Restarted Spyder
    • Reset preferences with spyder --reset
    • Reinstalled the latest version of Anaconda
    • Tried the other applicable steps from the Troubleshooting Guide
  • Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description

I import a module and then call a class of this module. This simply creates a AttributeError in Spyder but not outside. This occurs both when running a script that calls this object, or when doing it directly in the terminal.

This module is not public, but I will explain the situation here. Inside the project there is a folder called core. Inside this folder, there are several scripts, including one called count_lc.py, and an __init__.py file. Inside count_lc.py there is the class CountLC() that we want to call. Inside __init__.py, we can find imports such as from .count_lc import CountLC.

In other parts of the project, the CountLC object is called as follows:
image

This works fine when running the scripts that call this directly on the terminal, or within ipython console as well (as in the image above).
However, this fails when running scripts in spyder, or even within spyder Ipython console:
image

As you can see, in spyder it works when calling directly ec.CountLC, but not ec.count_lc.CountLC, while outside of spyder both work good.

Note: If the imports are done in the following way, it works as expected:
image

Is there something fundamentally wrong with the way the class is imported in this package? Even if there is, the fact that it works outside of spyder but not in spyder probably denotes an issue to be solved with Spyder, right?

What steps reproduce the problem?

  1. Having a package with the imports as explained above
  2. Running the ec.count_lc command after importing ec, as explained above.

What is the expected output? What do you see instead?

See description and images above.

Paste Traceback/Error Below (if applicable)

Traceback (most recent call last):

  Cell In[18], line 1
    ec.count_lc

AttributeError: module 'eclgrm_tools.core' has no attribute 'count_lc'

Versions

  • Spyder version: 5.4.5 (conda)
  • Python version: 3.10.11 64-bit
  • Qt version: 5.15.2
  • PyQt5 version: 5.15.7
  • Operating System: Linux-6.5.0-28-generic-x86_64-with-glibc2.35

Dependencies

# Mandatory:
atomicwrites >=1.2.0                                                        :  1.4.1 (OK)
chardet >=2.0.0                                                             :  4.0.0 (OK)
cloudpickle >=0.5.0                                                         :  2.2.1 (OK)
cookiecutter >=1.6.0                                                        :  2.1.1 (OK)
diff_match_patch >=20181111                                                 :  20230430 (OK)
intervaltree >=3.0.2                                                        :  3.1.0 (OK)
IPython >=7.31.1,<9.0.0,!=8.8.0,!=8.9.0,!=8.10.0,!=8.11.0,!=8.12.0,!=8.12.1 :  8.14.0 (OK)
jedi >=0.17.2,<0.19.0                                                       :  0.18.2 (OK)
jellyfish >=0.7                                                             :  0.9.0 (OK)
jsonschema >=3.2.0                                                          :  4.17.3 (OK)
keyring >=17.0.0                                                            :  23.13.1 (OK)
nbconvert >=4.0                                                             :  7.5.0 (OK)
numpydoc >=0.6.0                                                            :  1.5.0 (OK)
parso >=0.7.0,<0.9.0                                                        :  0.8.3 (OK)
pexpect >=4.4.0                                                             :  4.8.0 (OK)
pickleshare >=0.4                                                           :  0.7.5 (OK)
psutil >=5.3                                                                :  5.9.0 (OK)
pygments >=2.0                                                              :  2.15.1 (OK)
pylint >=2.5.0,<3.0                                                         :  2.17.4 (OK)
pylint_venv >=3.0.2                                                         :  3.0.2 (OK)
pyls_spyder >=0.4.0                                                         :  0.4.0 (OK)
pylsp >=1.7.4,<1.8.0                                                        :  1.7.4 (OK)
pylsp_black >=1.2.0,<3.0.0                                                  :  1.3.0 (OK)
qdarkstyle >=3.0.2,<3.2.0                                                   :  3.1 (OK)
qstylizer >=0.2.2                                                           :  0.2.2 (OK)
qtawesome >=1.2.1                                                           :  1.2.3 (OK)
qtconsole >=5.4.2,<5.5.0                                                    :  5.4.3 (OK)
qtpy >=2.1.0                                                                :  2.3.1 (OK)
rtree >=0.9.7                                                               :  1.0.1 (OK)
setuptools >=49.6.0                                                         :  67.8.0 (OK)
sphinx >=0.6.6                                                              :  7.0.1 (OK)
spyder_kernels >=2.4.4,<2.5.0                                               :  2.4.4 (OK)
textdistance >=4.2.0                                                        :  4.5.0 (OK)
three_merge >=0.1.1                                                         :  0.1.1 (OK)
watchdog >=0.10.3                                                           :  3.0.0 (OK)
xdg >=0.26                                                                  :  0.28 (OK)
zmq >=22.1.0                                                                :  25.1.0 (OK)

# Optional:
cython >=0.21                                                               :  0.29.35 (OK)
matplotlib >=3.0.0                                                          :  3.7.1 (OK)
numpy >=1.7                                                                 :  1.23.5 (OK)
pandas >=1.1.1                                                              :  1.5.3 (OK)
scipy >=0.17.0                                                              :  1.10.1 (OK)
sympy >=0.7.3                                                               :  1.11.1 (OK)

# Spyder plugins:
spyder_line_profiler.spyder.plugin 0.3.1                                    :  0.3.1 (OK)
spyder_notebook.notebookplugin 0.4.1                                        :  0.4.1 (OK)
@ccordoba12
Copy link
Member

Hey @Miguel-LlamasLanza, thanks for reporting. Could you upload a simple code project (i.e. the folder that contains that code) that generates this problem?

Otherwise it'd be hard for us to understand why importing it inside Spyder is different from doing it outside of it.

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

No branches or pull requests

2 participants