web-dev-qa-db-fra.com

Installation d'Apache-Airflow dans un environnement Conda

La situation

J'essaye d'installer Apache-airflow en utilisant pip dans un environnement conda. Je ne peux pas, puisque setup.py Egg_info continue à échouer:

La commande "python setup.py Egg_info" a échoué avec le code d'erreur 1 dans C:\Utilisateurs\joshu\AppData\Local\Temp\pip-install-3efyslfh\Apache-airflow \

message quand je cours 

pip install "Apache-airflow[s3, postgres]" 

J'ai exécuté ceci dans Windows cmd, puis j'ai refait toutes les étapes en tant qu'administrateur dans cmd (Maj + Entrée lors de l'ouverture de cmd). 

(myVenv) C:\Users\joshu\Documents>pip install "Apache-airflow[s3, postgres]"
Collecting Apache-airflow[postgres,s3]
  Using cached https://files.pythonhosted.org/packages/9e/12/6c70f9ef852b3061a3a6c9af03bd9dcdcaecb7d75c8898f82e3a54ad5f87/Apache-airflow-1.9.0.tar.gz
    Complete output from command python setup.py Egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\joshu\AppData\Local\Temp\pip-install-3efyslfh\Apache-airflow\setup.py", line 102
        async = [
              ^
    SyntaxError: invalid syntax

    ----------------------------------------
Command "python setup.py Egg_info" failed with error code 1 in C:\Users\joshu\AppData\Local\Temp\pip-install-3efyslfh\Apache-airflow\

Les pas que j'ai pris

1) J'ai d'abord créé un environnement conda et installé pip et setuptools dans l'environnement:

C:\Users\joshu\Documents>conda create -n airflow pip setuptools
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.5.4
  latest version: 4.5.10

Please update conda by running

    $ conda update -n base conda



## Package Plan ##

  environment location: C:\Users\joshu\Anaconda3\envs\airflow

  added / updated specs:
    - pip
    - setuptools


The following NEW packages will be INSTALLED:

    certifi:        2018.8.13-py37_0
    pip:            10.0.1-py37_0
    python:         3.7.0-hea74fb7_0
    setuptools:     40.0.0-py37_0
    vc:             14.1-h0510ff6_3
    vs2015_runtime: 15.5.2-3
    wheel:          0.31.1-py37_0
    wincertstore:   0.2-py37_0

C:\Users\joshu\Documents>activate airflow

(airflow) C:\Users\joshu\Documents> pip freeze
certifi==2018.8.13
wincertstore==0.2

(airflow) C:\Users\joshu\Documents>conda list
# packages in environment at C:\Users\joshu\Anaconda3\envs\airflow:
#
# Name                    Version                   Build  Channel
certifi                   2018.8.13                py37_0
pip                       10.0.1                   py37_0
python                    3.7.0                hea74fb7_0
setuptools                40.0.0                   py37_0
vc                        14.1                 h0510ff6_3
vs2015_runtime            15.5.2                        3
wheel                     0.31.1                   py37_0
wincertstore              0.2                      py37_0

(airflow) C:\Users\joshu\Documents>where pip
C:\Users\joshu\Anaconda3\envs\airflow\Scripts\pip.exe
C:\Users\joshu\Anaconda3\Scripts\pip.exe

(airflow) C:\Users\joshu\Documents>which pip
/c/Users/joshu/Anaconda3/envs/airflow/Scripts/pip

Après cette installation, exécuter pip install Apache-airflow me donne l'erreur en haut de cette page

Autres pas que j'ai pris

  1. Installer Apache-airflow sur mon système (pas d’environnement de conda). Cela fonctionne, mais je cherche à le contenir dans un environnement.
  2. Mise à niveau de setuptools:
(airflow) C:\Users\joshu\Documents>pip install --upgrade setuptools
Collecting setuptools
  Using cached https://files.pythonhosted.org/packages/66/e8/570bb5ca88a8bcd2a1db9c6246bb66615750663ffaaeada95b04ffe74e12/setuptools-40.2.0-py2.py3-none-any.whl
Installing collected packages: setuptools
  Found existing installation: setuptools 40.0.0
    Uninstalling setuptools-40.0.0:
      Successfully uninstalled setuptools-40.0.0
Successfully installed setuptools-40.2.0
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

(airflow) C:\Users\joshu\Documents>pip freeze
certifi==2018.8.13
wincertstore==0.2
You are using pip version 10.0.1, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

(airflow) C:\Users\joshu\Documents>conda list
# packages in environment at C:\Users\joshu\Anaconda3\envs\airflow:
#
# Name                    Version                   Build  Channel
certifi                   2018.8.13                py37_0
pip                       10.0.1                   py37_0
python                    3.7.0                hea74fb7_0
setuptools                40.2.0                    <pip>
setuptools                40.0.0                   py37_0
vc                        14.1                 h0510ff6_3
vs2015_runtime            15.5.2                        3
wheel                     0.31.1                   py37_0
wincertstore              0.2                      py37_0

(airflow) C:\Users\joshu\Documents>pip install "Apache-airflow[s3, postgres]"
Collecting Apache-airflow[postgres,s3]
  Using cached https://files.pythonhosted.org/packages/9e/12/6c70f9ef852b3061a3a6c9af03bd9dcdcaecb7d75c8898f82e3a54ad5f87/Apache-airflow-1.9.0.tar.gz
    Complete output from command python setup.py Egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\joshu\AppData\Local\Temp\pip-install-n1v4sa6d\Apache-airflow\setup.py", line 102
        async = [
              ^
    SyntaxError: invalid syntax

    ----------------------------------------
Command "python setup.py Egg_info" failed with error code 1 in C:\Users\joshu\AppData\Local\Temp\pip-install-n1v4sa6d\Apache-airflow\

J'ai également essayé de mettre à niveau pip puis de lancer l'installation - pas de chance

(airflow) C:\Users\joshu\Documents>python -m pip install --upgrade pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2ddaf940/pip-18.0-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 10.0.1
    Uninstalling pip-10.0.1:
      Successfully uninstalled pip-10.0.1
Successfully installed pip-18.0

(airflow) C:\Users\joshu\Documents>which pip
/c/Users/joshu/Anaconda3/envs/airflow/Scripts/pip

(airflow) C:\Users\joshu\Documents>pip --version
pip 18.0 from c:\users\joshu\anaconda3\envs\airflow\lib\site-packages\pip (python 3.7)

(airflow) C:\Users\joshu\Documents>pip install "Apache-airflow[s3, postgres]"

En fin de compte, j'aimerais disposer de flux d'air et de packages associés dont j'ai besoin pour mon projet dans un environnement conda.

2
Joshua Zastrow

L'erreur semble être due au fait que async est un mot clé réservé dans Python 3.7 et que ce package n'a pas mis à jour leur script setup.py. Vous pouvez utiliser Python 3.6 jusqu'à la mise à jour du paquet.

conda create -n airflow pip setuptools python=3.6
pip install "Apache-airflow[s3, postgres]"
3
darthbith

J'ai rencontré les mêmes problèmes. Apache Airflow 1.10 est incompatible.

Ma solution était de construire le code source. J'ai reçu le dernier code source via git. Cette commande crée un fichier wheel dans le répertoire dist.

python3 setup.py bdist_wheel

Ensuite, vous installez 

pip3 install Apache_airflow-2.0.0.dev0+incubating-py3-none-any.whl
0
Stefan Papp