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

OSS Gate Workshop: Fujitsu: 2017-10-02: neki: Superset: Work log #610

Closed
nekia opened this issue Oct 2, 2017 · 48 comments
Closed

OSS Gate Workshop: Fujitsu: 2017-10-02: neki: Superset: Work log #610

nekia opened this issue Oct 2, 2017 · 48 comments

Comments

@nekia
Copy link

nekia commented Oct 2, 2017

This is a work log of a "OSS Gate workshop".
"OSS Gate workshop" is an activity to increase OSS developers.
Here's been discussed in Japanese. Thanks.

作業ログ作成時の説明

以下のテンプレートを埋めてタイトルに設定します。埋め方例はスクロールすると見えてきます。

OSS Gate Workshop: ${LOCATION}: ${YEAR}-${MONTH}-${DAY}: ${アカウント名}: ${OSS名}: Work log

タイトル例↓:

OSS Gate Workshop: Tokyo: 2017-01-16: kou: Rabbit: Work log

OSS Gateワークショップ関連情報

  • スライド:ワークショップの進行に使っているスライドがあります。
  • チャット:OSS開発に関することならなんでも相談できます。ワークショップが終わった後もオンラインで相談しながら継続的にOSSの開発に参加しましょう!
  • シナリオ:ワークショップの目的・内容・進め方の詳細が書いています。
  • 過去のビギナーの作業ログ:他の人の作業ログから学べることがいろいろあるはずです。
@a-s-oss
Copy link
Contributor

a-s-oss commented Oct 2, 2017

よろしくお願いします

@kaakaa
Copy link
Contributor

kaakaa commented Oct 2, 2017

よろしくお願いしますー

@nekia
Copy link
Author

nekia commented Oct 2, 2017

Superset環境をWindows上で作ってみる!

@nekia
Copy link
Author

nekia commented Oct 2, 2017

Supersetの公式サイトに行ってみよう!

@nekia
Copy link
Author

nekia commented Oct 2, 2017

@nekia
Copy link
Author

nekia commented Oct 2, 2017

スクリーンショットばかりでインストール方法がないぞ!

@nekia
Copy link
Author

nekia commented Oct 2, 2017

下の方にInstallation Guide発見!

@nekia
Copy link
Author

nekia commented Oct 2, 2017

急に本格的なドキュメントだ。QuickStartはないのかな

@nekia
Copy link
Author

nekia commented Oct 2, 2017

OS dependenciesに「Windows isn’t officially supported at this point, but...」の記載発見

@nekia
Copy link
Author

nekia commented Oct 2, 2017

どうしようかな
サポートしてないけど出来なくもないけども

@nekia
Copy link
Author

nekia commented Oct 2, 2017

githubのissueを眺めてWindows上で構築したがってる人がどれだけいるのか見てみよう

@nekia
Copy link
Author

nekia commented Oct 2, 2017

supersetのgithubに戻ってissueをクリック 739件もある!

@nekia
Copy link
Author

nekia commented Oct 2, 2017

@nekia
Copy link
Author

nekia commented Oct 2, 2017

Windows上で構築しようとして困ってる人はいるにはいる。14日前に発行されたissueもあり

@nekia
Copy link
Author

nekia commented Oct 2, 2017

その最近のwindows環境系の issue で どこまで進められているのか見てみよう

@nekia
Copy link
Author

nekia commented Oct 2, 2017

windows-support ブランチの記載を issue内で発見。メンテされているか見てみる
apache/superset#922

@nekia
Copy link
Author

nekia commented Oct 2, 2017

最後のコミットが去年なのでメンテされてない模様 残念
https://github.com/aljones/caravel/commits/windows-support

@nekia
Copy link
Author

nekia commented Oct 2, 2017

とりあえず構築中の問題にぶつかるまでやってみよう
既知のissueがあれば、up voteして、新規なら報告して windows support運動を起こす!

@nekia
Copy link
Author

nekia commented Oct 2, 2017

手順に従って、まずは get-pip.py を入れて python 関連モジュール管理環境?を整えてみる
https://superset.incubator.apache.org/installation.html

@nekia
Copy link
Author

nekia commented Oct 2, 2017

ただのスクリプトなのでローカルの適当な場所に落とす
/cygdrive/c/tmp/20171002/superset_env

@nekia
Copy link
Author

nekia commented Oct 2, 2017

そういえばpythonインストールしてたっけ?

@nekia
Copy link
Author

nekia commented Oct 2, 2017

Python 2.7.13 (default, Mar 13 2017, 20:56:15)
入ってた。バージョンは足りてるか

@nekia
Copy link
Author

nekia commented Oct 2, 2017

インストール手順のところに 2.7 って書いてあった。OK

Superset is tested against Python 2.7 and Python 3.4. Airbnb currently uses 2.7.* in production. We do not plan on supporting Python 2.6.

@nekia
Copy link
Author

nekia commented Oct 2, 2017

ちなみにcygwinからスクリプトを動かしてしまった。公式はDOSプロンプトぽい

@nekia
Copy link
Author

nekia commented Oct 2, 2017

get-pip.pyを実行したらエラー発生

$ ./get-pip.py Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connecti on broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connect ion.VerifiedHTTPSConnection object at 0x6fff97993d0>: Failed to establish a new connection: [Errno 8] Name or service not known',)': /simple/pip/ Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connecti on broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connect ion.VerifiedHTTPSConnection object at 0x6fff9799550>: Failed to establish a new connection: [Errno 8] Name or service not known',)': /simple/pip/ Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connecti on broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connect ion.VerifiedHTTPSConnection object at 0x6fff97999d0>: Failed to establish a new connection: [Errno 8] Name or service not known',)': /simple/pip/ Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connecti on broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connect ion.VerifiedHTTPSConnection object at 0x6fff9799990>: Failed to establish a new connection: [Errno 8] Name or service not known',)': /simple/pip/ Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connecti on broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connect ion.VerifiedHTTPSConnection object at 0x6fff9799b10>: Failed to establish a new connection: [Errno 8] Name or service not known',)': /simple/pip/ Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages

@nekia
Copy link
Author

nekia commented Oct 2, 2017

Failed to establish a new connection:

プロキシの設定がいる模様

@nekia
Copy link
Author

nekia commented Oct 2, 2017

まずは環境変数 http_proxy を設定してみるところからやってみよう
export http_proxy=*******
export https_proxy=*******

@nekia
Copy link
Author

nekia commented Oct 2, 2017

$ ./get-pip.py
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', timeout('timed out',))': /simple/pip/
Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages

エラーが変わった。書き方が悪いのか
ただ、すでにローカル環境には pip 入ってる模様。

@nekia
Copy link
Author

nekia commented Oct 2, 2017

http_proxyの書き方を変えたら上手くいった。ID部分の「@」をエスケープしてたのがダメだった

@nekia
Copy link
Author

nekia commented Oct 2, 2017

$ ./get-pip.py
Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages

@nekia
Copy link
Author

nekia commented Oct 2, 2017

まずOS依存なcryptographyモジュールをpipでインストールする。C直下にTempフォルダを掘る必要があるようなのでやっておく

@nekia
Copy link
Author

nekia commented Oct 2, 2017

$ pip install cryptography
Collecting cryptography
Downloading cryptography-2.0.3-cp36-cp36m-win32.whl (1.1MB)
Collecting cffi>=1.7 (from cryptography)
Downloading cffi-1.11.0-cp36-cp36m-win32.whl (154kB)
Collecting asn1crypto>=0.21.0 (from cryptography)
Downloading asn1crypto-0.23.0-py2.py3-none-any.whl (99kB)
Collecting six>=1.4.1 (from cryptography)
Downloading six-1.11.0-py2.py3-none-any.whl
Collecting idna>=2.1 (from cryptography)
Downloading idna-2.6-py2.py3-none-any.whl (56kB)
Collecting pycparser (from cffi>=1.7->cryptography)
Downloading pycparser-2.18.tar.gz (245kB)
Installing collected packages: pycparser, cffi, asn1crypto, six, idna, cryptography
Running setup.py install for pycparser: started
Running setup.py install for pycparser: finished with status 'done'
Successfully installed asn1crypto-0.23.0 cffi-1.11.0 cryptography-2.0.3 idna-2.6 pycparser-2.18 six-1.11.0

インストール成功

@nekia
Copy link
Author

nekia commented Oct 2, 2017

virtualenvの利用をオススメされているので、これもpipでインストールする

@nekia
Copy link
Author

nekia commented Oct 2, 2017

成功!順調だ 

$ pip install virtualenv
Collecting virtualenv
Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB)
Installing collected packages: virtualenv
Successfully installed virtualenv-15.1.0

@nekia
Copy link
Author

nekia commented Oct 2, 2017

どこかで DOSに戻ろうか 迷い中。ひとまず cygwinで進めている

@nekia
Copy link
Author

nekia commented Oct 2, 2017

superset構築用にvirtual環境を生成してアクティベーションする

@nekia
Copy link
Author

nekia commented Oct 2, 2017

$ virtualenv venv
Using base prefix 'c:\users\neki.atsushi\appdata\local\programs\python\python36-32'
New python executable in C:\tmp\20171002\superset_env\venv\Scripts\python.exe
Installing setuptools, pip, wheel...done.

生成&アクティベーションは成功。思ったより上手くいっていてコワイ

/cygdrive/c/tmp/20171002/superset_env
$ . ./venv/Scripts/activate
(venv)
/cygdrive/c/tmp/20171002/superset_env
$

@nekia
Copy link
Author

nekia commented Oct 2, 2017

アクティベーションした仮想環境上で pip とsetuptools を最新化せよ、とのことなので実施。

@nekia
Copy link
Author

nekia commented Oct 2, 2017

特にアップデートされずに正常終了した!事前準備完了でいよいよ superset のインストールです!!

@osanai-hisashi
Copy link

目標が明確なので、フィードバック・ネタが盛りだくさんですね。
盛り沢山な分、最初のフィードバック・ネタを決めるところが難しいかもしれませんね。

@nekia
Copy link
Author

nekia commented Oct 2, 2017

まずは公式のインストール手順に Windows 未サポート と言いつつ、「もしWindowsのときは、、」の手順もあるので、未サポートな訳は何なのか(○○でエラーになるか、とか ニーズないと思ってやってないだけなのか)あたりを今後Windowsへのインストールにチャレンジする人たち向けの参考情報になるように(早々に諦めがつくように)、インストール時に直面した問題を単純に報告してみようと思います。

@nekia
Copy link
Author

nekia commented Oct 2, 2017

とりあえず super のpipインストールはエラー終了した!

$ pip install superset
Collecting superset
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', timeout('timed out',))': /simple/superset/
Downloading superset-0.20.0.tar.gz (49.0MB)
Collecting boto3==1.4.4 (from superset)
Downloading boto3-1.4.4-py2.py3-none-any.whl (127kB)
Collecting celery==3.1.25 (from superset)
Downloading celery-3.1.25-py2.py3-none-any.whl (526kB)
Collecting colorama==0.3.9 (from superset)
Downloading colorama-0.3.9-py2.py3-none-any.whl
Collecting cryptography==1.9 (from superset)
Downloading cryptography-1.9-cp36-cp36m-win32.whl (1.1MB)
Collecting flask==0.12.2 (from superset)
Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB)
Collecting flask-appbuilder==1.9.4 (from superset)
Downloading Flask-AppBuilder-1.9.4.tar.gz (1.4MB)
Collecting flask-cache==0.13.1 (from superset)
Downloading Flask-Cache-0.13.1.tar.gz (45kB)
Collecting flask-migrate==2.0.3 (from superset)
Downloading Flask-Migrate-2.0.3.tar.gz
Collecting flask-script==2.0.5 (from superset)
Downloading Flask-Script-2.0.5.tar.gz (42kB)
Collecting flask-sqlalchemy==2.1 (from superset)
Downloading Flask-SQLAlchemy-2.1.tar.gz (95kB)
Collecting flask-testing==0.6.2 (from superset)
Downloading Flask-Testing-0.6.2.tar.gz (129kB)
Collecting flask-wtf==0.14.2 (from superset)
Downloading Flask_WTF-0.14.2-py2.py3-none-any.whl
Collecting flower==0.9.1 (from superset)
Downloading flower-0.9.1.tar.gz (3.9MB)
Collecting future<0.17,>=0.16.0 (from superset)
Downloading future-0.16.0.tar.gz (824kB)
Collecting humanize==0.5.1 (from superset)
Downloading humanize-0.5.1.tar.gz
Collecting gunicorn==19.7.1 (from superset)
Downloading gunicorn-19.7.1-py2.py3-none-any.whl (111kB)
Collecting idna==2.5 (from superset)
Downloading idna-2.5-py2.py3-none-any.whl (55kB)
Collecting markdown==2.6.8 (from superset)
Downloading Markdown-2.6.8.tar.gz (307kB)
Collecting pandas==0.20.2 (from superset)
Downloading pandas-0.20.2-cp36-cp36m-win32.whl (7.5MB)
Collecting parsedatetime==2.0.0 (from superset)
Downloading parsedatetime-2.0.tar.gz (56kB)
Collecting pydruid==0.3.1 (from superset)
Downloading pydruid-0.3.1-py2.py3-none-any.whl
Collecting PyHive>=0.4.0 (from superset)
Downloading PyHive-0.5.0.tar.gz (40kB)
Collecting python-dateutil==2.6.0 (from superset)
Downloading python_dateutil-2.6.0-py2.py3-none-any.whl (194kB)
Collecting requests==2.17.3 (from superset)
Downloading requests-2.17.3-py2.py3-none-any.whl (87kB)
Collecting simplejson==3.10.0 (from superset)
Downloading simplejson-3.10.0.tar.gz (77kB)
Collecting six==1.10.0 (from superset)
Downloading six-1.10.0-py2.py3-none-any.whl
Collecting sqlalchemy==1.1.9 (from superset)
Downloading SQLAlchemy-1.1.9.tar.gz (5.2MB)
Collecting sqlalchemy-utils==0.32.16 (from superset)
Downloading SQLAlchemy-Utils-0.32.16.tar.gz (120kB)
Collecting sqlparse==0.2.3 (from superset)
Downloading sqlparse-0.2.3-py2.py3-none-any.whl
Collecting thrift>=0.9.3 (from superset)
Downloading thrift-0.10.0.zip (87kB)
Collecting thrift-sasl>=0.2.1 (from superset)
Downloading thrift_sasl-0.2.1.tar.gz
Collecting botocore<1.6.0,>=1.5.0 (from boto3==1.4.4->superset)
Downloading botocore-1.5.95-py2.py3-none-any.whl (3.6MB)
Collecting jmespath<1.0.0,>=0.7.1 (from boto3==1.4.4->superset)
Downloading jmespath-0.9.3-py2.py3-none-any.whl
Collecting s3transfer<0.2.0,>=0.1.10 (from boto3==1.4.4->superset)
Downloading s3transfer-0.1.11-py2.py3-none-any.whl (54kB)
Collecting billiard<3.4,>=3.3.0.23 (from celery==3.1.25->superset)
Downloading billiard-3.3.0.23.tar.gz (151kB)
Collecting kombu<3.1,>=3.0.37 (from celery==3.1.25->superset)
Downloading kombu-3.0.37-py2.py3-none-any.whl (240kB)
Collecting pytz>dev (from celery==3.1.25->superset)
Downloading pytz-2017.2-py2.py3-none-any.whl (484kB)
Collecting asn1crypto>=0.21.0 (from cryptography==1.9->superset)
Using cached asn1crypto-0.23.0-py2.py3-none-any.whl
Collecting cffi>=1.7 (from cryptography==1.9->superset)
Using cached cffi-1.11.0-cp36-cp36m-win32.whl
Collecting itsdangerous>=0.21 (from flask==0.12.2->superset)
Downloading itsdangerous-0.24.tar.gz (46kB)
Collecting Werkzeug>=0.7 (from flask==0.12.2->superset)
Downloading Werkzeug-0.12.2-py2.py3-none-any.whl (312kB)
Collecting click>=2.0 (from flask==0.12.2->superset)
Downloading click-6.7-py2.py3-none-any.whl (71kB)
Collecting Jinja2>=2.4 (from flask==0.12.2->superset)
Downloading Jinja2-2.9.6-py2.py3-none-any.whl (340kB)
Collecting Flask-Babel==0.11.1 (from flask-appbuilder==1.9.4->superset)
Downloading Flask-Babel-0.11.1.tar.gz (40kB)
Collecting Flask-Login==0.2.11 (from flask-appbuilder==1.9.4->superset)
Downloading Flask-Login-0.2.11.tar.gz
Collecting Flask-OpenID==1.2.5 (from flask-appbuilder==1.9.4->superset)
Downloading Flask-OpenID-1.2.5.tar.gz (43kB)
Collecting alembic>=0.6 (from flask-migrate==2.0.3->superset)
Downloading alembic-0.9.5.tar.gz (990kB)
Collecting WTForms (from flask-wtf==0.14.2->superset)
Downloading WTForms-2.1.zip (553kB)
Collecting tornado==4.2.0 (from flower==0.9.1->superset)
Downloading tornado-4.2.tar.gz (433kB)
Collecting babel>=1.0 (from flower==0.9.1->superset)
Downloading Babel-2.5.1-py2.py3-none-any.whl (6.8MB)
Collecting numpy>=1.7.0 (from pandas==0.20.2->superset)
Downloading numpy-1.13.3-2-cp36-none-win32.whl (6.8MB)
Collecting urllib3<1.22,>=1.21.1 (from requests==2.17.3->superset)
Downloading urllib3-1.21.1-py2.py3-none-any.whl (131kB)
Collecting certifi>=2017.4.17 (from requests==2.17.3->superset)
Downloading certifi-2017.7.27.1-py2.py3-none-any.whl (349kB)
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.17.3->superset)
Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
Collecting sasl>=0.2.1 (from thrift-sasl>=0.2.1->superset)
Downloading sasl-0.2.1.tar.gz
Collecting thriftpy (from thrift-sasl>=0.2.1->superset)
Downloading thriftpy-0.3.9.tar.gz (208kB)
Collecting docutils>=0.10 (from botocore<1.6.0,>=1.5.0->boto3==1.4.4->superset)
Downloading docutils-0.14-py3-none-any.whl (543kB)
Collecting amqp<2.0,>=1.4.9 (from kombu<3.1,>=3.0.37->celery==3.1.25->superset)
Downloading amqp-1.4.9-py2.py3-none-any.whl (51kB)
Collecting anyjson>=0.3.3 (from kombu<3.1,>=3.0.37->celery==3.1.25->superset)
Downloading anyjson-0.3.3.tar.gz
Collecting pycparser (from cffi>=1.7->cryptography==1.9->superset)
Using cached pycparser-2.18.tar.gz
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->flask==0.12.2->superset)
Downloading MarkupSafe-1.0.tar.gz
Collecting python3-openid>=2.0 (from Flask-OpenID==1.2.5->flask-appbuilder==1.9.4->superset)
Downloading python3_openid-3.1.0-py3-none-any.whl (130kB)
Collecting Mako (from alembic>=0.6->flask-migrate==2.0.3->superset)
Downloading Mako-1.0.7.tar.gz (564kB)
Collecting python-editor>=0.3 (from alembic>=0.6->flask-migrate==2.0.3->superset)
Downloading python-editor-1.0.3.tar.gz
Collecting ply<4.0,>=3.4 (from thriftpy->thrift-sasl>=0.2.1->superset)
Downloading ply-3.10.tar.gz (150kB)
Collecting defusedxml (from python3-openid>=2.0->Flask-OpenID==1.2.5->flask-appbuilder==1.9.4->superset)
Downloading defusedxml-0.5.0-py2.py3-none-any.whl
Building wheels for collected packages: superset, flask-appbuilder, flask-cache, flask-migrate, flask-script, flask-sqlalchemy, flask-testing, flower, future, humanize, markdown, parsedatetime, PyHive, simplejson, sqlalchemy, sqlalchemy-utils, thrift, thrift-sasl, billiard, itsdangerous, Flask-Babel, Flask-Login, Flask-OpenID, alembic, WTForms, tornado, sasl, thriftpy, anyjson, pycparser, MarkupSafe, Mako, python-editor, ply
Running setup.py bdist_wheel for superset: started
Running setup.py bdist_wheel for superset: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\66\0f\ad\1d48ee821b6d60c0a1936de707958ce38edc277a8e501a3442
Running setup.py bdist_wheel for flask-appbuilder: started
Running setup.py bdist_wheel for flask-appbuilder: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\76\fa\88\d23864a02913bc4ad1c60ba9054d16e8020f5c6e79c77d753d
Running setup.py bdist_wheel for flask-cache: started
Running setup.py bdist_wheel for flask-cache: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\d3\ea\07\db4bcd93163f4ac63974a7ce7aa15df9d45cdc9864c8232f9c
Running setup.py bdist_wheel for flask-migrate: started
Running setup.py bdist_wheel for flask-migrate: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\4f\1a\cd\241202c77554d1500b47f169a59432c33834f941e90769bf0e
Running setup.py bdist_wheel for flask-script: started
Running setup.py bdist_wheel for flask-script: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\e2\ea\d8\8d114e46cef819f7d9879504a7f9cb2a88a479af2858223d9f
Running setup.py bdist_wheel for flask-sqlalchemy: started
Running setup.py bdist_wheel for flask-sqlalchemy: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\cf\9f\1b\390c152e645c6e300fda9ed9c678c6e22717a3020fd02acb4d
Running setup.py bdist_wheel for flask-testing: started
Running setup.py bdist_wheel for flask-testing: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\10\34\47\2378abdc5f5ce79b1d9b26be4a1f14d485f0376e5dc6512822
Running setup.py bdist_wheel for flower: started
Running setup.py bdist_wheel for flower: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\a3\0a\36\7c3642bbba1ded7a79c64c5bdc2a0958b88b73c84d60550b26
Running setup.py bdist_wheel for future: started
Running setup.py bdist_wheel for future: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\c2\50\7c\0d83b4baac4f63ff7a765bd16390d2ab43c93587fac9d6017a
Running setup.py bdist_wheel for humanize: started
Running setup.py bdist_wheel for humanize: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\d4\80\38\cfbfd95752f71f3812505b948b43383ddc99eedf835fc13b09
Running setup.py bdist_wheel for markdown: started
Running setup.py bdist_wheel for markdown: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\85\a7\08\33ee5cd488d0365d8bed79d1d4e5c28dd3fbfc7f6d0ad4bb09
Running setup.py bdist_wheel for parsedatetime: started
Running setup.py bdist_wheel for parsedatetime: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\4b\03\bf\264040e162b478f6ba8c091a838c186cc10ef173a88fa1acf7
Running setup.py bdist_wheel for PyHive: started
Running setup.py bdist_wheel for PyHive: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\e7\59\27\943bcc03c98a37876394bc9f902bc9056f00166a9746555311
Running setup.py bdist_wheel for simplejson: started
Running setup.py bdist_wheel for simplejson: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\43\c5\ef\edcebbb19becffd2ba75bf219afdbb4ca85198b2d909f1b31b
Running setup.py bdist_wheel for sqlalchemy: started
Running setup.py bdist_wheel for sqlalchemy: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\62\c3\8f\12a643439a7ba36143e21533ac633b99da8537b1deb8d0f0c3
Running setup.py bdist_wheel for sqlalchemy-utils: started
Running setup.py bdist_wheel for sqlalchemy-utils: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\f0\05\32\bf092b262dcb4f4a9eb87e93c1b88c63fb6e345ef88534d65d
Running setup.py bdist_wheel for thrift: started
Running setup.py bdist_wheel for thrift: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\e7\f1\d3\b472914d95caa1781fb29b1257b85808324b0bfd1838961752
Running setup.py bdist_wheel for thrift-sasl: started
Running setup.py bdist_wheel for thrift-sasl: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\d6\83\3d\0c0c05bbcaf825563b61249113882600efe6cbf8b9ed619564
Running setup.py bdist_wheel for billiard: started
Running setup.py bdist_wheel for billiard: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\11\68\13\9f46e6b8760998754ce90ef87103ea7f4e80504ffc9f93a362
Running setup.py bdist_wheel for itsdangerous: started
Running setup.py bdist_wheel for itsdangerous: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\fc\a8\66\24d655233c757e178d45dea2de22a04c6d92766abfb741129a
Running setup.py bdist_wheel for Flask-Babel: started
Running setup.py bdist_wheel for Flask-Babel: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\99\65\6c\927249178edfdc24c9cb2d9fcea27f598a73b323a1b5e3a8fc
Running setup.py bdist_wheel for Flask-Login: started
Running setup.py bdist_wheel for Flask-Login: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\4b\58\2e\fbba562e845fb419f6157a504055275a4d1783a22ebe3124e8
Running setup.py bdist_wheel for Flask-OpenID: started
Running setup.py bdist_wheel for Flask-OpenID: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\3b\36\b4\ab2c592ee3b385f9db7fbcdeacdf766bca3dd4b5270d40690e
Running setup.py bdist_wheel for alembic: started
Running setup.py bdist_wheel for alembic: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\d1\0e\b9\fb570150b350298e1d8f1ff38a400ae709580b36e43bc3ac91
Running setup.py bdist_wheel for WTForms: started
Running setup.py bdist_wheel for WTForms: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\36\35\f3\7452cd24daeeaa5ec5b2ea13755316abc94e4e7702de29ba94
Running setup.py bdist_wheel for tornado: started
Running setup.py bdist_wheel for tornado: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\61\a8\89\044b56fd7bb4d2d6fd3ff45cc5c98b7b3bb68fed70617ffe13
Running setup.py bdist_wheel for sasl: started
Running setup.py bdist_wheel for sasl: finished with status 'error'
Complete output from command c:\tmp\20171002\superset_env\venv\scripts\python.exe -u -c "import setuptools, tokenize;file='C:\cygwin64\tmp\pip-build-2xvmco3c\sasl\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d C:\cygwin64\tmp\tmpx9wg15o4pip-wheel- --python-tag cp36:
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win32-3.6
creating build\lib.win32-3.6\sasl
copying sasl_init_.py -> build\lib.win32-3.6\sasl
running egg_info
writing sasl.egg-info\PKG-INFO
writing dependency_links to sasl.egg-info\dependency_links.txt
writing requirements to sasl.egg-info\requires.txt
writing top-level names to sasl.egg-info\top_level.txt
reading manifest file 'sasl.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'sasl.egg-info\SOURCES.txt'
copying sasl\saslwrapper.cpp -> build\lib.win32-3.6\sasl
copying sasl\saslwrapper.h -> build\lib.win32-3.6\sasl
copying sasl\saslwrapper.pyx -> build\lib.win32-3.6\sasl
running build_ext
building 'sasl.saslwrapper' extension
creating build\temp.win32-3.6
creating build\temp.win32-3.6\Release
creating build\temp.win32-3.6\Release\sasl
cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Isasl -Ic:\users\neki.atsushi\appdata\local\programs\python\python36-32\include -Ic:\users\neki.atsushi\appdata\local\programs\python\python36-32\include "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.15063.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" /EHsc /Tpsasl/saslwrapper.cpp /Fobuild\temp.win32-3.6\Release\sasl/saslwrapper.obj
error: command 'cl.exe' failed: No such file or directory


Failed building wheel for sasl
Running setup.py clean for sasl
Running setup.py bdist_wheel for thriftpy: started
Running setup.py bdist_wheel for thriftpy: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\ae\3b\73\082d28b917d2886b1c0d3e0dc6f3ca3919b7e1df519580873b
Running setup.py bdist_wheel for anyjson: started
Running setup.py bdist_wheel for anyjson: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\06\3d\74\f64c3ce3266df2598031818ecc86bc25c8ccede0723973f119
Running setup.py bdist_wheel for pycparser: started
Running setup.py bdist_wheel for pycparser: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\95\14\9a\5e7b9024459d2a6600aaa64e0ba485325aff7a9ac7489db1b6
Running setup.py bdist_wheel for MarkupSafe: started
Running setup.py bdist_wheel for MarkupSafe: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\88\a7\30\e39a54a87bcbe25308fa3ca64e8ddc75d9b3e5afa21ee32d57
Running setup.py bdist_wheel for Mako: started
Running setup.py bdist_wheel for Mako: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\33\bf\8f\036f36c35e0e3c63a4685e306bce6b00b6349fec5b0947586e
Running setup.py bdist_wheel for python-editor: started
Running setup.py bdist_wheel for python-editor: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\84\d6\b8\082dc3b5cd7763f17f5500a193b6b248102217cbaa3f0a24ca
Running setup.py bdist_wheel for ply: started
Running setup.py bdist_wheel for ply: finished with status 'done'
Stored in directory: C:\Users\neki.atsushi\AppData\Local\pip\Cache\wheels\ad\dd\ad\8ce1991a7b380dfe23d6cc81a4de5c2775bc728b5a0a7721aa
Successfully built superset flask-appbuilder flask-cache flask-migrate flask-script flask-sqlalchemy flask-testing flower future humanize markdown parsedatetime PyHive simplejson sqlalchemy sqlalchemy-utils thrift thrift-sasl billiard itsdangerous Flask-Babel Flask-Login Flask-OpenID alembic WTForms tornado thriftpy anyjson pycparser MarkupSafe Mako python-editor ply
Failed to build sasl
Installing collected packages: six, python-dateutil, docutils, jmespath, botocore, s3transfer, boto3, billiard, amqp, anyjson, kombu, pytz, celery, colorama, asn1crypto, idna, pycparser, cffi, cryptography, itsdangerous, Werkzeug, click, MarkupSafe, Jinja2, flask, babel, Flask-Babel, Flask-Login, defusedxml, python3-openid, Flask-OpenID, sqlalchemy, flask-sqlalchemy, WTForms, flask-wtf, flask-appbuilder, flask-cache, Mako, python-editor, alembic, flask-script, flask-migrate, flask-testing, tornado, flower, future, humanize, gunicorn, markdown, numpy, pandas, parsedatetime, pydruid, PyHive, urllib3, certifi, chardet, requests, simplejson, sqlalchemy-utils, sqlparse, thrift, sasl, ply, thriftpy, thrift-sasl, superset
Running setup.py install for sasl: started
Running setup.py install for sasl: finished with status 'error'
Complete output from command c:\tmp\20171002\superset_env\venv\scripts\python.exe -u -c "import setuptools, tokenize;file='C:\cygwin64\tmp\pip-build-2xvmco3c\sasl\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record C:\cygwin64\tmp\pip-2uerw0yb-record\install-record.txt --single-version-externally-managed --compile --install-headers c:\tmp\20171002\superset_env\venv\include\site\python3.6\sasl:
running install
running build
running build_py
creating build
creating build\lib.win32-3.6
creating build\lib.win32-3.6\sasl
copying sasl_init_.py -> build\lib.win32-3.6\sasl
running egg_info
writing sasl.egg-info\PKG-INFO
writing dependency_links to sasl.egg-info\dependency_links.txt
writing requirements to sasl.egg-info\requires.txt
writing top-level names to sasl.egg-info\top_level.txt
reading manifest file 'sasl.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'sasl.egg-info\SOURCES.txt'
copying sasl\saslwrapper.cpp -> build\lib.win32-3.6\sasl
copying sasl\saslwrapper.h -> build\lib.win32-3.6\sasl
copying sasl\saslwrapper.pyx -> build\lib.win32-3.6\sasl
running build_ext
building 'sasl.saslwrapper' extension
creating build\temp.win32-3.6
creating build\temp.win32-3.6\Release
creating build\temp.win32-3.6\Release\sasl
cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Isasl -Ic:\users\neki.atsushi\appdata\local\programs\python\python36-32\include -Ic:\users\neki.atsushi\appdata\local\programs\python\python36-32\include "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.15063.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" /EHsc /Tpsasl/saslwrapper.cpp /Fobuild\temp.win32-3.6\Release\sasl/saslwrapper.obj
error: command 'cl.exe' failed: No such file or directory

----------------------------------------

Command "c:\tmp\20171002\superset_env\venv\scripts\python.exe -u -c "import setuptools, tokenize;file='C:\cygwin64\tmp\pip-build-2xvmco3c\sasl\setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record C:\cygwin64\tmp\pip-2uerw0yb-record\install-record.txt --single-version-externally-managed --compile --install-headers c:\tmp\20171002\superset_env\venv\include\site\python3.6\sasl" failed with error code 1 in C:\cygwin64\tmp\pip-build-2xvmco3c\sasl\

@nekia
Copy link
Author

nekia commented Oct 2, 2017

症状:
Windows上に環境構築途中で superset のpipインストールに失敗する。
Installation & Configuration — Apache Superset documentation に従って、Windows環境でインストールを進めている。
以下の手順は成功しました。

  • OS dependencies
  • Python virtualenv
  • Python’s setup tools and pip

以下の手順でエラーが発生しました。

  • Superset installation and initialization
    この手順で「pip install superset」を実行すると「error: command 'cl.exe' failed: No such file or directory」が発生して、インストールがエラー終了する。エラーログ(抜粋)は以下の通りです。(全文は添付 errorlog.txt
$ pip install superset
Collecting superset
  Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', timeout('timed out',))': /simple/superset/
  Downloading superset-0.20.0.tar.gz (49.0MB)
Collecting boto3==1.4.4 (from superset)
  Downloading boto3-1.4.4-py2.py3-none-any.whl (127kB)
Collecting celery==3.1.25 (from superset)
  Downloading celery-3.1.25-py2.py3-none-any.whl (526kB)
Collecting colorama==0.3.9 (from superset)
  Downloading colorama-0.3.9-py2.py3-none-any.whl
Collecting cryptography==1.9 (from superset)
  Downloading cryptography-1.9-cp36-cp36m-win32.whl (1.1MB)
Collecting flask==0.12.2 (from superset)
  Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB)

(snip)

    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.6
    creating build\lib.win32-3.6\sasl
    copying sasl\__init__.py -> build\lib.win32-3.6\sasl
    running egg_info
    writing sasl.egg-info\PKG-INFO
    writing dependency_links to sasl.egg-info\dependency_links.txt
    writing requirements to sasl.egg-info\requires.txt
    writing top-level names to sasl.egg-info\top_level.txt
    reading manifest file 'sasl.egg-info\SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'sasl.egg-info\SOURCES.txt'
    copying sasl\saslwrapper.cpp -> build\lib.win32-3.6\sasl
    copying sasl\saslwrapper.h -> build\lib.win32-3.6\sasl
    copying sasl\saslwrapper.pyx -> build\lib.win32-3.6\sasl
    running build_ext
    building 'sasl.saslwrapper' extension
    creating build\temp.win32-3.6
    creating build\temp.win32-3.6\Release
    creating build\temp.win32-3.6\Release\sasl
    cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Isasl -Ic:\users\neki.atsushi\appdata\local\programs\python\python36-32\include -Ic:\users\neki.atsushi\appdata\local\programs\python\python36-32\include "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.15063.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" /EHsc /Tpsasl/saslwrapper.cpp /Fobuild\temp.win32-3.6\Release\sasl/saslwrapper.obj
    error: command 'cl.exe' failed: No such file or directory

    ----------------------------------------
Command "c:\tmp\20171002\superset_env\venv\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\cygwin64\\tmp\\pip-build-2xvmco3c\\sasl\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\cygwin64\tmp\pip-2uerw0yb-record\install-record.txt --single-version-externally-managed --compile --install-headers c:\tmp\20171002\superset_env\venv\include\site\python3.6\sasl" failed with error code 1 in C:\cygwin64\tmp\pip-build-2xvmco3c\sasl\

環境:
Windows 8.1 Pro
Python 2.7.13 (default, Mar 13 2017, 20:56:15)
cygwin
pip 9.0.1
認証付きProxy環境

Windows上での環境構築が未サポートな理由が公式ページ上ではハッキリ記載されていない。
未サポートな理由を今後同じ事にチャレンジしようとするユーザーのためにも明確にしておきたい。
未サポートな理由によってはWindows対応に貢献したい。

@nekia
Copy link
Author

nekia commented Oct 2, 2017

Issue発行前に類似指摘を検索したら同件を発見した。
apache/superset#1516

以下の変更を加えて pip install superset が成功するようになった

@nekia
Copy link
Author

nekia commented Oct 2, 2017

adminアカウントの作成コマンドが応答なしになる。

$ fabmanager create-admin --app superset
Username [admin]:
User first name [admin]:
User last name [user]:
Email [[email protected]]:
Password: hogehoge
※ Password入力後、コマンドが返らない

@nekia
Copy link
Author

nekia commented Oct 3, 2017

cygwinでfabmanagerを実行すると上記の応答なし事象に陥る模様。(正確に言うと「応答なし」ではなくPasswordの標準入力が受け付けられていないだけ)
DOSプロンプトに切り替えると成功

@nekia
Copy link
Author

nekia commented Oct 3, 2017

(venv35) c:\tmp\20171002\superset_env>superset db upgrade
'superset' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

上記のエラーとなったのでsupersetまでのパスを含めて実行すると成功

(venv35) c:\tmp\20171002\superset_env>python venv35\Lib\site-packages\superset\bin\superset db upgrade
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.

以下のコマンドも同様

superset load_examples
superset init
superset runserver

@nekia
Copy link
Author

nekia commented Oct 3, 2017

(venv35) c:\tmp\20171002\superset_env>python venv35\Lib\site-packages\superset\bin\superset runserver
(snip)
    from gunicorn import util
  File "c:\tmp\20171002\superset_env\venv35\lib\site-packages\gunicorn\util.py", line 9, in <module>
    import fcntl
ModuleNotFoundError: No module named 'fcntl'

runserverでは上のエラーが発生。fcntlはUnixライクな環境利用を前提としている。
以下の投稿を参考にdevelopment web server (web server in debug mode) で動かすと runserver に成功した。

apache/superset#1235

As written in the documentation windows is not a supported platform. As you have found out gunicorn does not work on windows. My advice would be to install it on a linux machine. Or you can use the development web server which of course is not advised to run in production.

(venv35) c:\tmp\20171002\superset_env>python venv35\Lib\site-packages\superset\bin\superset runserver -d
�[34m-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
�[33mStarting Superset server in �[31mDEBUG�[33m mode
�[34m-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
�[0m
2017-10-03 12:54:42,628:INFO:werkzeug: * Restarting with stat
�[34m-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
�[33mStarting Superset server in �[31mDEBUG�[33m mode
�[34m-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
�[0m
2017-10-03 12:54:46,220:WARNING:werkzeug: * Debugger is active!
2017-10-03 12:54:46,225:INFO:werkzeug: * Debugger PIN: 125-684-198
2017-10-03 12:54:46,247:INFO:werkzeug: * Running on http://0.0.0.0:8088/ (Press CTRL+C to quit)

@tdtds tdtds closed this as completed Jan 27, 2018
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

5 participants