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

Version: 3.41.5 is failing with error ModuleNotFoundError: No module named 'bs4' #1295

Closed
sushilkar opened this issue Jan 16, 2024 · 23 comments

Comments

@sushilkar
Copy link

https://pypi.org/project/atlassian-python-api/3.41.5/

11:34:03     from atlassian import Jira
11:34:03   File "/opt/vz/1.0/lib/python3.8/site-packages/atlassian/__init__.py", line 5, in <module>
11:34:03     from .confluence import Confluence
11:34:03   File "/opt/vz/1.0/lib/python3.8/site-packages/atlassian/confluence.py", line 10, in <module>
11:34:03     from bs4 import BeautifulSoup
11:34:03 ModuleNotFoundError: No module named 'bs4'
@ragchuck
Copy link
Contributor

Same for me! Our Pipelines failed this morning because of this.

@Lenormju
Copy link

I added !=3.41.5 to my version constraints.
Using Poetry for my project management :

[tool.poetry.dependencies]
atlassian-python-api = "^3.39.0, !=3.41.5"  # https://github.com/atlassian-api/atlassian-python-api/issues/1295

@PopoviciMarian
Copy link

Same for me!

@FCamborda
Copy link
Contributor

Our pipelines are also broken.
The usage of bs4 (https://github.com/atlassian-api/atlassian-python-api/blob/master/atlassian/confluence.py#L10) is not properly declared:
https://github.com/atlassian-api/atlassian-python-api/blob/master/setup.py#L28

Please add it and deploy a new release.

Improvement suggestion: Use https://github.com/tweag/FawltyDeps

@gonchik
Copy link
Member

gonchik commented Jan 16, 2024

Hello, sorry for that release, I have not known issue with bs4.
I will release ASAP with that PR #1296

@gonchik
Copy link
Member

gonchik commented Jan 16, 2024

@FCamborda thanks for the https://github.com/tweag/FawltyDeps

@moonrail
Copy link

moonrail commented Jan 16, 2024

Hey @gonchik,

this did not fix it completely.

Installs via PyPi currently lead to incomplete installations, as setup.py does not reference beautifulsoup4 as dependency:
https://github.com/atlassian-api/atlassian-python-api/blob/3.41.5/setup.py#L28

Therefore pip does not install package beautifulsoup4 and usage of this client leads to:

venv/lib/python3.11/site-packages/atlassian/confluence.py:10: in <module>
    from beautifulsoup4 import BeautifulSoup
ModuleNotFoundError: No module named 'beautifulsoup4'

Please add it as a dependency and release a hotfix.

Edit: lxml is also missing in setup.py - there seems to be a definition gap between package dependencies and thos documented in requirements.txt.

@marc-woerner-idexx
Copy link

I am facing the same issue as @moonrail . Please provide a workaround.

@schroeni96
Copy link

schroeni96 commented Jan 16, 2024

The same issue appears to be in 3.41.6. with python 3.10, which one of our build jobs just picked up

@mtichavsky
Copy link

mtichavsky commented Jan 16, 2024

The problem isn't just about installing the dependency, but also about importing it, as @gsemet already mentioned in #1296.

On my installation of Fedora 39 (corporate build), Python 3.12.1, I install BeautifulSoup as pip install beautifulsoup4, but I have to import it as from bs4 import .... Which means, I cannot use this package as of right now, because it is doing from beautifulsoup4 import ..., see output bellow

(venv) [mtichavs@t14csb middleware-cve-mapping (linking-jiras *)]$ python
Python 3.12.1 (main, Dec  8 2023, 00:00:00) [GCC 13.2.1 20231205 (Red Hat 13.2.1-6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from atlassian import Jira
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/mtichavs/middleware-cve-mapping/venv/lib/python3.12/site-packages/atlassian/__init__.py", line 5, in <module>
    from .confluence import Confluence
  File "/home/mtichavs/middleware-cve-mapping/venv/lib/python3.12/site-packages/atlassian/confluence.py", line 10, in <module>
    from beautifulsoup4 import BeautifulSoup
ModuleNotFoundError: No module named 'beautifulsoup4'
>>> from beautifulsoup4 import BeautifulSoup
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'beautifulsoup4'
>>> from bs4 import BeautifulSoup
>>>

Package versions (from pip list):

  • atlassian-python-api: 3.41.6
  • beautifulsoup4: 4.12.2

@Lenormju
Copy link

Yes the new version is still broken. Recommending blocking any further version until definitely fixed.

[tool.poetry.dependencies]
atlassian-python-api = "^3.39.0, <3.41.5"  # https://github.com/atlassian-api/atlassian-python-api/issues/1295

@bagerard
Copy link

bagerard commented Jan 16, 2024

what's missing now is

  • adding beautifulsoup4 to the setup.py so it gets pulled automatically during installation
  • fixing its import name

@moonrail
Copy link

I cannot understand how there can be automatic tests and such basic issues go through undetected.
Then why the overhead of testing in the first place? To look good at first glance?
At least the import error should have been detected by automatic testing.

In my opinion at least this should be done to prevent this issue from being repeated:

  • Consolidate all package dependencies in a single place (why have a requirements.txt in the first place, if you have a package? And even if you absolutely want to use a requirements.txt, you can simply source this file in setup.py)
  • Install the package in automatic testing and let pip install all dependencies automatically - do not install them beforehand or individually (see tox.ini, where beautifulsoup4 is hardcoded)
    • This way automatic tests will fail if dependencies are not correctly declared
    • Also currently tests run e.g. with unconstrained requests while requirements.txt pins via requests>=2.8.1, which leads to incorrect test results
  • Re-check your test pipeline if it correctly runs tests, as obviously a very basic import error was not a blocker for releasing and uploading new versions and packages

@MultiLi
Copy link

MultiLi commented Jan 16, 2024

image
That's what happened after updating to 3.41.6

@zbika73
Copy link
Contributor

zbika73 commented Jan 16, 2024

About requirements.txt file: please check this PR #1298

@wwakabobik
Copy link

Same here,

image

@gonchik
Copy link
Member

gonchik commented Jan 16, 2024

Hi! I see I am going to upload to do it.

@vineetpandey
Copy link

vineetpandey commented Jan 17, 2024

for me the same error, failing our pipelines due to this:

from atlassian import Jira
Traceback (most recent call last):
File "", line 1, in
File "C:\Python\lib\site-packages\atlassian_init_.py", line 5, in
from .confluence import Confluence
File "C:\Python\lib\site-packages\atlassian\confluence.py", line 10, in
from beautifulsoup4 import BeautifulSoup
ModuleNotFoundError: No module named 'beautifulsoup4'

@gonchik
Copy link
Member

gonchik commented Jan 17, 2024

Merged all changes, in 30 min I will release it

@gonchik
Copy link
Member

gonchik commented Jan 17, 2024

Hi!

I am really sorry for that mistake.
I have uploaded the 3.41.7 version with hotfix version.

I will be happy to see more pull requests.

Cheers,
GT

@FCamborda
Copy link
Contributor

Our pipelines are not broken anymore. Thanks a lot for reacting to this @gonchik !

@sushilkar
Copy link
Author

Thank you @gonchik

@bagerard
Copy link

Thanks for the fix and quick resolution, that's appreciated 👍

Note that there is a side effect here (extra dependency) #1301

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