50599


anaconda3を使って [style2paints](https://github.com/lllyasviel/style2paints)
というWebアプリをローカル環境に導入しようとしています。  
環境構築後、python server.pyを実行し、

[code]

    Listening on http://0.0.0.0:80/
    Hit Ctrl-C to quit.
    
    serving on 0.0.0.0:80 view at http://127.0.0.1:80
    
[/code]

と表示されます。しかし、`http://127.0.0.1:80` に移動しても、

[code]

    Error: 403 Forbidden
    Sorry, the requested URL 'http://127.0.0.1/' caused an error:
    
    Access denied.
    
[/code]

としか表示されません。

`http://127.0.0.1/` に接続するたびに

[code]

    127.0.0.1 - - [24/Nov/2018:16:03:45 +0900] "GET / HTTP/1.1" 403 705 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
    127.0.0.1 - - [24/Nov/2018:16:03:45 +0900] "GET /favicon.ico HTTP/1.1" 403 716 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"
    
[/code]

がターミナルに表示されるので、環境構築自体には成功していると思います。  
おそらくローカルサーバーのポートが解放されてないことが原因だと思うのですが、  
windows defender firewall で ポート8000を送受信ともに開放してみたのですが、変化ありません。  
環境はwindows10 anaconda3 python3.6 です。  
どうかご教授お願いします。

## 追記

コメントありがとうございます。導入しようとしているwebアプリはstyle2paintsというソフトです。

手順は以下の通りです。

  1. anacondaでpython3.6の環境を作る。
  2. ターミナルを開く。
  3. `pip install tensorflow==1.5.0` を実行
  4. 
[code]    pip install paste

    pip install scikit-image
    pip install keras
    pip install bottle
    pip install gevent
    pip install h5py
    pip install opencv-python
    pip install scikit-image
    
[/code]

を実行。ここまで必要なモジュールのインストール。

  5. `git clone github.com/lllyasviel/style2paints.git` で本体ダウンロード。
  6. <https://drive.google.com/drive/folders/1fWi4wmNj-xr-nCzuWMsN2rcm0249_Aem> から必要ファイル全てダウンロード。
  7. 6 でダウンロードしたファイルを `C:/Users/(ユーザー名)/style2paints/V3/server` に格納。
  8. `cd style2paints/V3/server`、`python server.py` を実行。


CC BY-SA 4.0
2018-11-24T07:12:59.727
50587
2018-11-26T02:12:35.417
2018-11-26T02:12:35.417
19110
31132
question
python python3 windows anaconda
ローカル環境構築で403 Forbidden


`style2paints`は、なかなか面白いアプリですね。

Windowsの場合は、ディレクトリの区切り文字がPOSIX準拠とは違う関係で、bottle の方で`Access
denied`にされています。`server.py`の上部にある次のコードを

[code]

    @route('/<filename:path>')
    def send_static(filename):
        return static_file(filename, root='game/')
    
    @route('/')
    def send_static():
        return static_file("index.html", root='game/')
    
[/code]

次のように修正するとアクセスできるようになります。

[code]

    @route('/<filename:path>')
    def send_static(filename):
        return static_file(filename, root='game')
    
    @route('/')
    def send_static():
        return static_file("index.html", root='game')
    
[/code]

linuxの場合は、1024 未満のポートへのバインディングは、特権ユーザーに限られている場合が多いので、一般ユーザーで`python
server.py`を起動するとアクセスが拒否されることがあります。

その場合には、`server.py`の最後に以下のようなコードがありますが、`port=80`を`port=8080`のようにポート番号を1024よりも大きいものにすることです。

[code]

    if multiple_process:
        run(host="0.0.0.0", port=80, server='paste')
    else:
        run(host="0.0.0.0", port=8000, server='paste')
    
[/code]


CC BY-SA 4.0
2018-11-25T03:45:24.783
50599
2018-11-26T01:46:33.820
2018-11-26T01:46:33.820
15171
15171
50587
answer