Skip to content

Minimum Python requirement should be at least 3.5.3 on PyPi due to dependencies #8162

Description

@belidzs

Apache Airflow version: 1.10.9

Kubernetes version (if you are using kubernetes) (use kubectl version):

Environment: python 3.5.2

  • Cloud provider or hardware configuration:
  • OS (e.g. from /etc/os-release): Ubuntu 16.04.6 LTS
  • Kernel (e.g. uname -a): Linux ubuntu-1604-staging.lan 4.4.0-176-generic Add docstrings to DAG class methods #206-Ubuntu SMP Fri Feb 28 05:02:04 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • Install tools: pip 8.1.1
  • Others:

What happened:

I have installed apache-airflow[postgres] using the distribution-provided pip installer into a virtualenv which was successful. However, after running airflow or airflow initdb I get the following exception:

Traceback (most recent call last):
  File "/home/belidzs/venv/bin/airflow", line 25, in <module>
    from airflow.configuration import conf
  File "/home/belidzs/venv/lib/python3.5/site-packages/airflow/__init__.py", line 42, in <module>
    from airflow.models import DAG
  File "/home/belidzs/venv/lib/python3.5/site-packages/airflow/models/__init__.py", line 21, in <module>
    from airflow.models.baseoperator import BaseOperator, BaseOperatorLink  # noqa: F401
  File "/home/belidzs/venv/lib/python3.5/site-packages/airflow/models/baseoperator.py", line 30, in <module>
    from typing import Any, Callable, ClassVar, Dict, FrozenSet, Iterable, List, Optional, Set, Type, Union
ImportError: cannot import name 'ClassVar'

The exception is caused by depending on typing.ClassVar which was only introduced in python 3.5.3

Currently the package definition on pypi doesn't set a requirement of >=3.5.3 which it should.

What you expected to happen:

  • pip should inform me that my environment is not appropriate to install the package and decline installation
  • airflow documentation should include a section of the minimal requirements

How to reproduce it:
Install airflow with pip install apache-airflow on Python 3.5.2 then run airflow

Anything else we need to know:

Activity

  1. boring-cyborg commented on Apr 6, 2020

    @boring-cyborg

    Thanks for opening your first issue here! Be sure to follow the issue template!

  2. belidzs commented on Apr 6, 2020

    @belidzs
    ContributorAuthor

    Also it seems that 3.8 can't be used either due to this bug but you probably already know about this.

    This fact would also belong to the requirements section of the documentation.

  3. potiuk commented on Apr 7, 2020

    @potiuk
    Member

    Hey @belidzs -> would you mind creating a PR for that? This is a community managed project - so anyone can fix such problems (in Docs) - there is not even a need to report it. The requirements are documented in https://github.com/apache/airflow/blob/master/README.md#stable-version-1109 - so this needs to be updated there.

  4. belidzs commented on Apr 19, 2020

    @belidzs
    ContributorAuthor

    @potiuk thanks for the suggestion, I just did that

    I'd also update the minimal requirements in the PyPi package metadata myself but since I have no experience with PyPil I'd rather leave that for someone else.

  5. potiuk commented on Apr 19, 2020

    @potiuk
    Member

    Thanks! It needs to be done in v1-10-test branch - I will cherry-pick this change and will add the right exclusions :)

  6. belidzs commented on Apr 19, 2020

    @belidzs
    ContributorAuthor

    Great, thank you!

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions