μ¬κΈ°μ λμ΄λ μμ΅μλ₯Ό λ°λ₯΄λ €κ³ μλν©λλ€. https://medium.com/@ssola/building -microservices-with-python-part-3-a556a4c4bc00
swagger-ui pip extraλ₯Ό μ€μΉν μ μμ΅λλ€.
μ€μΉμ swagger-uiκ° μ€μΉλμ΄ μμ΄μΌ ν©λλ€.
no matches found: connexion[swagger-ui]
pip install connexion[swagger-ui]:
λͺ λ Ή μΆλ ₯:
python --version
Python 3.6.7 :: Anaconda, Inc.
pip show connexion | grep "^Version\:"
Version: 2.0.1
μλ νμΈμ @mas-dse-juremigi
λ²κ·Έλ₯Ό μ¬νν μ μμμ΅λλ€. λͺ κ°μ§ μ§λ¬Έ:
pip install connexion[tests]
μμ λμΌν μ€λ₯κ° λ°μν©λκΉ?pip --version
μ μΆλ ₯μ 무μμ
λκΉ?λ΄κ° μλν κ²μ λ€μκ³Ό κ°μ΅λλ€.
β /tmp/pip > virtualenv venv
Running virtualenv with interpreter /usr/bin/python2
New python executable in /tmp/pip/venv/bin/python2
Also creating executable in /tmp/pip/venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
β /tmp/pip > . venv/bin/activate
(venv) β /tmp/pip > pip install connexion[swagger-ui]
Collecting connexion[swagger-ui]
Using cached https://files.pythonhosted.org/packages/0c/ad/69d7947053b960c4eb8229e01aefbd848d8a28a30972a8de52184cfde550/connexion-2.0.1-py2.py3-none-any.whl
Collecting typing>=3.6.1; python_version < "3.6" (from connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/cc/3e/29f92b7aeda5b078c86d14f550bf85cff809042e3429ace7af6193c3bc9f/typing-3.6.6-py2-none-any.whl
Collecting requests>=2.9.1 (from connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/ff/17/5cbb026005115301a8fb2f9b0e3e8d32313142fe8b617070e7baad20554f/requests-2.20.1-py2.py3-none-any.whl
Collecting clickclick>=1.2 (from connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/b6/51/2b04f7a56dcbacc0e3a7cf726e1d88d28866bf488a7a0668582306e1e643/clickclick-1.2.2-py2.py3-none-any.whl
Collecting six>=1.9 (from connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Collecting PyYAML>=3.11 (from connexion[swagger-ui])
Collecting pathlib>=1.0.1; python_version < "3.4" (from connexion[swagger-ui])
Collecting jsonschema<3.0.0,>=2.5.1 (from connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/77/de/47e35a97b2b05c2fadbec67d44cfcdcd09b8086951b331d82de90d2912da/jsonschema-2.6.0-py2.py3-none-any.whl
Collecting flask>=0.10.1 (from connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl
Collecting inflection>=0.3.1 (from connexion[swagger-ui])
Collecting openapi-spec-validator>=0.2.4 (from connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/6e/02/8e436ff26d13dcae0f3b53acf19df7ddde91cbe0ebf98b8c37e884839253/openapi_spec_validator-0.2.4-py2-none-any.whl
Collecting swagger-ui-bundle>=0.0.2; extra == "swagger-ui" (from connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/46/fb/17cf46d8a650f3266ce46eaf6316e20288278c04d1aa3575b82581c7fb0c/swagger_ui_bundle-0.0.2-py2-none-any.whl
Collecting idna<2.8,>=2.5 (from requests>=2.9.1->connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl
Collecting urllib3<1.25,>=1.21.1 (from requests>=2.9.1->connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests>=2.9.1->connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/56/9d/1d02dd80bc4cd955f98980f28c5ee2200e1209292d5f9e9cc8d030d18655/certifi-2018.10.15-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.9.1->connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting click>=4.0 (from clickclick>=1.2->connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl
Collecting functools32; python_version == "2.7" (from jsonschema<3.0.0,>=2.5.1->connexion[swagger-ui])
Collecting Werkzeug>=0.14 (from flask>=0.10.1->connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl
Collecting Jinja2>=2.10 (from flask>=0.10.1->connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/7f/ff/ae64bacdfc95f27a016a7bed8e8686763ba4d277a78ca76f32659220a731/Jinja2-2.10-py2.py3-none-any.whl
Collecting itsdangerous>=0.24 (from flask>=0.10.1->connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from Jinja2>=2.10->flask>=0.10.1->connexion[swagger-ui])
Using cached https://files.pythonhosted.org/packages/bc/3a/6bfd7b4b202fa33bdda8e4e3d3acc719f381fd730f9a0e7c5f34e845bd4d/MarkupSafe-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl
Installing collected packages: typing, idna, urllib3, certifi, chardet, requests, PyYAML, click, clickclick, six, pathlib, functools32, jsonschema, Werkzeug, MarkupSafe, Jinja2, itsdangerous, flask, inflection, openapi-spec-validator, swagger-ui-bundle, connexion
Successfully installed Jinja2-2.10 MarkupSafe-1.1.0 PyYAML-3.13 Werkzeug-0.14.1 certifi-2018.10.15 chardet-3.0.4 click-7.0 clickclick-1.2.2 connexion-2.0.1 flask-1.0.2 functools32-3.2.3.post2 idna-2.7 inflection-0.3.1 itsdangerous-1.1.0 jsonschema-2.6.0 openapi-spec-validator-0.2.4 pathlib-1.0.1 requests-2.20.1 six-1.11.0 swagger-ui-bundle-0.0.2 typing-3.6.6 urllib3-1.24.1
(venv) β /tmp/pip > pip freeze | grep swagger
swagger-ui-bundle==0.0.2
swagger-ui-bundle
λ₯Ό μ€μΉνμ¬ μ°¨λ¨μ ν΄μ ν μλ μμ΅λλ€.
κ·ΈλΌμλ λΆκ΅¬νκ³ λ¬Έμμ λͺ
μλ λ°©λ²μ΄ ν¨κ³Όκ° μλ μ΄μ λ₯Ό μμλΌ κ°μΉκ° μμ΅λλ€.
Windows 10μμ λΉμ·ν λ¬Έμ λ₯Ό λ°κ²¬νμ΅λλ€. μ dev macμμ connexion['swagger=ui']
κ° μμλλ‘ μλνμ΅λλ€.
no matches found
λ©μμ§λ μλ§λ Zsh μ
Έμμ μμλμμ κ²μ
λλ€. λ€μμ λ΄ μμ€ν
μ μ 체 λ©μμ§μ
λλ€(μμ λΆλΆμ zsh: μ°Έκ³ ).
zsh: no matches found: connexion[swagger-ui]
μ΄κ²μ Zsh νμΌ μ΄λ¦ μμ±μΌλ‘ μΈν΄ λ°μν©λλ€. man zshexpn
:
FILENAME GENERATION
If a word contains an unquoted instance of one of the characters `*',
`(', `|', `<', `[', or `?', it is regarded as a pattern for filename
generation, unless the GLOB option is unset. If the EXTENDED_GLOB
option is set, the `^' and `#' characters also denote a pattern; otherβ
wise they are not treated specially by the shell.
κΈ°λ³Έμ μΌλ‘ Zshλ "ν¨ν΄"μ connexions
, connexionw
, connexiona
λ±κ³Ό κ°μ νμΌ μ΄λ¦μΌλ‘ νμ₯νλ €κ³ ν©λλ€. λ€λ₯Έ μ(μ: bash)μλ κ·Έλ° μ’
λ₯κ° μμ΅λλ€. νμ₯νκ±°λ κΈ°λ³Έμ μΌλ‘ λΉνμ±ννμμμ€. Zshμ κ²½μ° λ§€κ°λ³μλ₯Ό μΈμ©ν΄μΌ ν©λλ€.
zsh
μ²λΌ 보μ
λλ€.
```
hjacobs@mycomputer :~$ zsh
mycomputer% pip μ€μΉ μ°κ²°[swagger-ui] --user
zsh: μΌμΉνλ νλͺ©μ΄ μμ΅λλ€: connexion[swagger-ui]
pip install "connexion[swagger-ui]"
μ΄ λλ₯Ό μν΄ μΌνμ΅λλ€
μ΄κ²μ μꡬ μ¬ν νμΌλ‘ ν¬λ§·ν μ μλ μ¬λμ΄ μμ΅λκΉ?
μλ νμΈμ μ¬λ¬λΆ, μꡬ μ¬ν νμΌμ ν¬ν¨νλ λ°©λ²μ κ΄λ¦¬ν μ¬λμ΄ μμ΅λκΉ?
@johanngomes λ¦μ νμ μ΄μ§λ§ Google App Engine(2μΈλ)μ λ°°ν¬νλ λ° λμΌν λ¬Έμ κ° λ°μνμ΅λλ€. Connexionμ μ μ€μΉλμ§λ§ μ΄μ κ° λ¬΄μμ΄λ [swagger-ui]
extraλ μ€μΉλμ§ μμ΅λλ€.
@dtkavκ° μΈκΈνλ―μ΄ μꡬ μ¬ν νμΌμ swagger-ui-bundle
λ₯Ό μΆκ°νκΈ°
λ€μμ pipenv
λ₯Ό μ¬μ©νμ¬ requirements.txt
νμΌμ λ€νν λ μ»λ μΆλ ₯μ
λλ€(λ€λ₯Έ μ’
μμ±μ μ κ±°νμ΅λλ€).
λͺ λ Ή:
pipenv lock -r
connexion[swagger-ui]==2.7.0
κ°μ₯ μ μ©ν λκΈ
pip install "connexion[swagger-ui]"
μ΄ λλ₯Ό μν΄ μΌνμ΅λλ€