atlassian-python-api: Version: 3.41.5 is failing with error ModuleNotFoundError: No module named 'bs4'

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'

About this issue

  • Original URL
  • State: closed
  • Created 6 months ago
  • Reactions: 14
  • Comments: 23 (9 by maintainers)

Most upvoted comments

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

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

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.

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

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

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

Note that there is a side effect here (extra dependency) https://github.com/atlassian-api/atlassian-python-api/issues/1301

Thank you @gonchik

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

what’s missing now is

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

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

Hello, sorry for that release, I have not known issue with bs4. I will release ASAP with that PR https://github.com/atlassian-api/atlassian-python-api/pull/1296