【AWS】Cloud9でvirtualenvを使う方法
※ 2020/02/11にQrunchで書いた記事を移行しました。
AWS Cloud9でvirtualenvを使う際は、ちょっとした設定の変更が必要です。 AWS Cloud9でvirtualenvを使いたいという需要はあまり無いように思いますが、私は使いたいので設定変更の手順を書きました。
- インポートエラー
- PYTHONPATHにvirtualenvのパスが無いことが原因
- virtualenvで使用しているPYTHONPATHを確認する
- PYTHONPATHにvirtualenvのパスを追加する
- 再度Runnerを実行する
インポートエラー
numpyとpandasを使いたかったのですが、Cloud9のRunnerで実行するとimportエラーで実行できませんでした。
PYTHONPATHにvirtualenvのパスが無いことが原因
[Preferences]->[Python Support]内の「PYTHONPATH」はデフォルトの状態では、下記のような設定になっています。ここにvirtualenvのPYTHONPATHを追加します。
"@path":"/usr/local/lib/python3.4/dist-packages:/usr/local/lib/python3.5/dist-packages:"
virtualenvで使用しているPYTHONPATHを確認する
sys.pathを出力して確認します。 Cloud9の画面下方のターミナルウィンドウより下記手順で確認しました。 最後方の'/home/ec2-user/workspace/lib/python3.7/site-packages'がvirtualenv用のパスです。
cd workspace/ $ source bin/activate $ python Python 3.7.4 (default, Dec 13 2019, 01:02:18) [GCC 7.3.1 20180712 (Red Hat 7.3.1-6)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', '/home/ec2-user/workspace/lib64/python37.zip', '/home/ec2-user/workspace/lib64/python3.7', '/home/ec2-user/workspace/lib64/python3.7/lib-dynload', '/usr/lib64/python3.7', '/usr/lib/python3.7', '/home/ec2-user/workspace/lib/python3.7/site-packages'] >>>
PYTHONPATHにvirtualenvのパスを追加する
[Preferences]->[Python Support]内の「PYTHONPATH」に、virtualenvのパスを追加します。
再度Runnerを実行する
今度は上手くインポートされました。