Cloud9でLambdaを作ろうとして失敗した記録
- 残念ながら
- Command failed: virtualenv venv -p python3.7
- Sorry, IKPdb only supports Python 3.6.x for now.
- Command failed: virtualenv venv -p python3.6
残念ながら
このページは残念な記録しかないので、こういうことが起こるんだぁぐらいにしか役立ちません。 解決方法もありません。誰かに教えてほしい状態です。
Command failed: virtualenv venv -p python3.7
$ python -V Python 3.6.12 $ python -m pip -V pip 20.3.1 from /home/ec2-user/.local/lib/python3.6/site-packages/pip (python 3.6) $ sudo python -V Python 3.6.12 $ sudo pip -V pip 9.0.3 from /usr/lib/python3.6/dist-packages (python 3.6)
作成内容
エラー
原因 : 不明
# インストールディレクトリを見てみると $ which python /usr/bin/python # Pythonは「2.7」「3.6」はあるが「3.7」はない $ ls -la /usr/bin/ | grep python lrwxrwxrwx 1 root root 24 Dec 7 09:52 python -> /etc/alternatives/python lrwxrwxrwx 1 root root 17 Dec 4 16:25 python2 -> /usr/bin/python27 -rwxr-xr-x 1 root root 5104 Nov 2 22:27 python27 -rwxr-xr-x 1 root root 5104 Nov 2 22:27 python2.7 -rwxr-xr-x 1 root root 1846 Nov 2 22:27 python2.7-config lrwxrwxrwx 1 root root 25 Dec 4 16:26 python3 -> /etc/alternatives/python3 -rwxr-xr-x 3 root root 6872 Aug 31 18:58 python36 -rwxr-xr-x 3 root root 6872 Aug 31 18:58 python3.6 lrwxrwxrwx 1 root root 17 Dec 4 16:26 python3.6-config -> python3.6m-config -rwxr-xr-x 3 root root 6872 Aug 31 18:58 python3.6m -rwxr-xr-x 1 root root 173 Aug 31 18:57 python3.6m-config -rwxr-xr-x 1 root root 3373 Aug 31 18:41 python3.6m-x86_64-config lrwxrwxrwx 1 root root 32 Dec 4 16:26 python3-config -> /etc/alternatives/python3-config lrwxrwxrwx 1 root root 31 Dec 7 09:52 python-config -> /etc/alternatives/python-config
Python3.7をインストールしてもダメだった
参考 : pyenvによる仮想Python環境をAWS Cloud9上で構築する | Developers.IO
#### pyenvをインストールする # pyenvをGitHubからCloneする $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv Cloning into '/home/ec2-user/.pyenv'... remote: Enumerating objects: 18376, done. remote: Total 18376 (delta 0), reused 0 (delta 0), pack-reused 18376 Receiving objects: 100% (18376/18376), 3.67 MiB | 2.61 MiB/s, done. Resolving deltas: 100% (12514/12514), done. # バージョンを確認する $ ~/.pyenv/bin/pyenv --version pyenv 1.2.21-1-g943015eb # .bashrcに定義を書いて $ vi ~/.bashrc $ cat ~/.bashrc | grep pyenv export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" # 反映させてPATHを通す $ source ~/.bashrc $ printenv PATH | sed -e 's/:/:\n/g' | grep pyenv /home/ec2-user/.pyenv/bin: $ pyenv --version pyenv 1.2.21-1-g943015eb #### Python3.7をインストールする # インストールできるPython3.7を確認する $ pyenv install -l | grep 3.7 2.3.7 3.3.7 3.7.0 3.7-dev 3.7.1 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 miniconda-3.7.0 miniconda3-3.7.0 stackless-3.3.7 stackless-3.7.5 # Python3.7.9をインストールする $ pyenv install 3.7.9 Downloading Python-3.7.9.tar.xz... -> https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz Installing Python-3.7.9... python-build: use readline from homebrew WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib? WARNING: The Python readline extension was not compiled. Missing the GNU readline lib? Installed Python-3.7.9 to /home/ec2-user/.pyenv/versions/3.7.9 # WARNINGで出ている不足したものをインストールする $ sudo yum -y install bzip2 readline Loaded plugins: priorities, update-motd, upgrade-helper amzn-main | 2.1 kB 00:00:00 amzn-updates | 3.8 kB 00:00:00 1067 packages excluded due to repository priority protections Package bzip2-1.0.6-8.12.amzn1.x86_64 already installed and latest version Package readline-6.2-9.14.amzn1.x86_64 already installed and latest version Nothing to do # Python3.7に切り替える $ pyenv versions * system (set by /home/ec2-user/.pyenv/version) 3.7.9 $ pyenv global 3.7.9 $ python -V Python 3.7.9 ### ターミナルでエラーになったコマンドは実行できる・・・でもLambda関数が作れない・・・ $ virtualenv venv -p python3.7 Running virtualenv with interpreter /home/ec2-user/.pyenv/shims/python3.7 Using base prefix '/home/ec2-user/.pyenv/versions/3.7.9' New python executable in /home/ec2-user/environment/venv/bin/python3.7 Also creating executable in /home/ec2-user/environment/venv/bin/python Installing setuptools, pip, wheel... done.
Sorry, IKPdb only supports Python 3.6.x for now.
$ python -V Python 3.7.9 $ pip -V pip 20.3 from /home/ec2-user/.local/lib/python3.7/site-packages/pip (python 3.7) $ sudo python -V Python 2.7.18 $ sudo pip -V sudo: pip: command not found
作成内容
エラー
The following error was encountered when attempting to create your serverless application Command failed: venv/bin/pip install ikp3db==1.1.4 ERROR: Command errored out with exit status 1: command: /home/ec2-user/environment/a/venv/bin/python3.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9w9degcv/ikp3db_0b4451da9ebd4366a50f7baed6b7014c/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9w9degcv/ikp3db_0b4451da9ebd4366a50f7baed6b7014c/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-va_wyotl cwd: /tmp/pip-install-9w9degcv/ikp3db_0b4451da9ebd4366a50f7baed6b7014c/ Complete output (1 lines): Sorry, IKPdb only supports Python 3.6.x for now. ---------------------------------------- ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
原因 : 不明
そもそもIKPdbとはなんぞや?
これには ikpdb という名前のモジュールが含まれており、AWS Cloud9 はこれを使用して Python アプリケーションをデバッグします。
との共同作業 AWS Lambda の関数 AWS Cloud9 Integrated Development Environment (IDE) - AWS Cloud9
Python2.7しかサポートしないよ的なことを言っている気がします。
Please note that IKPdb supports only CPython 2.7, CPython 3 support is the next step.
Welcome to IKPdb’s documentation! — IKPdb 1.0.0 documentation
いや、Python3以降は「IKPdb」ではなく「IKP3db」を使うのか?エラーもikp3db==1.1.4
になっている。
IKP3db is a Python 3 debugger. For Python 2 see the IKPdb project on github and pypi.
「IKP3db」はバージョン「1.3」以降でPython3.7に対応している・・・のかな?
1.3
Add Python 3.7 support (debugger can now be invoked using the
breakpoint()
function).
対応 : あきらめる
Lambdaの画面から関数を作成しようっと
Command failed: virtualenv venv -p python3.6
$ python -V Python 3.7.9 $ pip -V pip 20.3 from /home/ec2-user/.local/lib/python3.7/site-packages/pip (python 3.7) $ sudo python -V Python 3.7.9 $ sudo pip -V sudo: pip: command not found
作成内容
エラー
原因 : 不明
# インストールディレクトリを見てみると $ which python alias python='python3' /usr/bin/python3 # Pythonは「2.7」「3.7」はあるが「3.6」はない $ ls -la /usr/bin/ | grep python lrwxrwxrwx 1 root root 24 Dec 7 05:07 python -> /etc/alternatives/python lrwxrwxrwx 1 root root 9 Nov 6 19:45 python2 -> python2.7 -rwxr-xr-x 1 root root 7048 Aug 27 21:23 python2.7 -rwxr-xr-x 1 root root 1846 Aug 27 21:23 python2.7-config lrwxrwxrwx 1 root root 16 Nov 6 19:45 python2-config -> python2.7-config lrwxrwxrwx 1 root root 9 Nov 6 19:57 python3 -> python3.7 -rwxr-xr-x 2 root root 7048 Aug 27 22:02 python3.7 lrwxrwxrwx 1 root root 17 Nov 6 19:57 python3.7-config -> python3.7m-config -rwxr-xr-x 2 root root 7048 Aug 27 22:02 python3.7m -rwxr-xr-x 1 root root 173 Aug 27 22:02 python3.7m-config -rwxr-xr-x 1 root root 3210 Aug 27 21:16 python3.7m-x86_64-config lrwxrwxrwx 1 root root 16 Nov 6 19:57 python3-config -> python3.7-config lrwxrwxrwx 1 root root 14 Nov 6 19:45 python-config -> python2-config
対応 : Python3.6にこだわりがないのであきらめる
- Python2からPython3へ自力でバージョンアップしてYumが壊れたので修理する
- yumをアップデート
- Python3.6を探す >> インストールできそうなものがわからないので面倒くさくてあきらめた
$ sudo yum -y update Loaded plugins: extras_suggestions, langpacks, priorities, update-motd amzn2-core | 3.7 kB 00:00:00 ... Complete! $ yum search python36-dev Loaded plugins: extras_suggestions, langpacks, priorities, update-motd 220 packages excluded due to repository priority protections ========================================================================================= N/S matched: python36-dev ========================================================================================== boost-python36-devel.x86_64 : Shared object symbolic links for Boost.Python 3 shiboken-python36-devel.x86_64 : Development files for shiboken Name and summary matches only, use "search all" for everything.