どこにでもいる30代SEの学習ブログ

主にプログラミング関連の学習内容。読んだ本の感想や株式投資についても書いてます。

【AWS】Cloud9でvirtualenvを使う方法

f:id:predora005:20200919221457p:plain

※ 2020/02/11にQrunchで書いた記事を移行しました。

AWS Cloud9でvirtualenvを使う際は、ちょっとした設定の変更が必要です。 AWS Cloud9でvirtualenvを使いたいという需要はあまり無いように思いますが、私は使いたいので設定変更の手順を書きました。

インポートエラー

numpyとpandasを使いたかったのですが、Cloud9のRunnerで実行するとimportエラーで実行できませんでした。

f:id:predora005:20200919202252j:plain

PYTHONPATHにvirtualenvのパスが無いことが原因

[Preferences]->[Python Support]内の「PYTHONPATH」はデフォルトの状態では、下記のような設定になっています。ここにvirtualenvのPYTHONPATHを追加します。

f:id:predora005:20200919202313j:plain

"@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のパスを追加します。

f:id:predora005:20200919202336j:plain

再度Runnerを実行する

今度は上手くインポートされました。

f:id:predora005:20200919202352j:plain