

タイトルのとおり、djangoのwebアプリをデプロイする際に、EC2上でcollectstaticを使用とするとSyntaxErrorになります。内容は以下のとおり。

[code]

    hoge@LAPTOP-hoge:~/env1/mybook$ python manage.py collectstatic
      File "manage.py", line 16
        ) from exc
             ^
    SyntaxError: invalid syntax
    
[/code]

manage.py

[code]

    #!/usr/bin/env python
    """Django's command-line utility for administrative tasks."""
    import os
    import sys
    
    
    def main():
        os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mybook.settings')
        try:
            from django.core.management import execute_from_command_line
        except ImportError as exc:
            raise ImportError(
                "Couldn't import Django. Are you sure it's installed and "
                "available on your PYTHONPATH environment variable? Did you "
                "forget to activate a virtual environment?"
            ) from exc
        execute_from_command_line(sys.argv)
    
    
    if __name__ == '__main__':
        main()
    
[/code]

ちなみに、開発環境の方ではうまく動作したので、他の記事にもあるとおりpythonのバージョンの問題なのではないかと考えています。本番環境のEC2上で

[code]

    python -v
    
[/code]

としてpythonのバージョンを確認すると、python2系になっています。  
ただ、python3をインストールしたので

[code]

    python3 -v
    
[/code]

とすればpython3系がインストールされていることが確認できます。

おそらく、manage.pyを扱う際にpython3系の方にパスが通っていないのだと思われますが、どのように対応したら良いのかわかりません。パスの指定は.bashrcなどのファイルで行うのでしょうか？  
ご存知の方がいらっしゃいましたら、よろしくお願い致します。


CC BY-SA 4.0
2021-09-28T06:33:05.087
82727
2021-09-28T06:40:23.893
2021-09-28T06:40:23.893
3060
48390
question
python django amazon-ec2 デプロイ
djangoのwebアプリをデプロイする際に、EC2上でcollectstaticを使用とするとエラーになる