以下の環境でPython、scapy をインストールしscapyをimportし実行を行っていますが、scapyが呼び出せていないようです。  
原因が、改善策が分かる方、ご教示ください。

なお、`pull ubuntu`
してきたubuntuのDockerイメージには、vim、python、pip等が入っていなかったため、root権限で自分でインストールしました。

私が実施した内容を以下に記載致します。

## 環境

Windows 10 Pro（ホストOS）  
WSL2  
Ubuntu（22.04.1 LTS）  
Docker

```

    # docker pull ubuntu:latest
    # docker container run -itd  --name myubu ubuntu:latest
    # docker exec -it myubu bash
    
```

```

    # apt-get update
    
```

pythonが入っているか確認→入っていなかった

```

    root@22c1e6376c8b:/# python3 -V
    bash: python3: command not found
    
```

pythonをインストール（エラーなくインストール完了）

```

    # apt-get install python3
    
```

```

    # which python3
    /usr/bin/python3
    
```

```

    # python3 -V
    Python 3.10.6
    
```

pipのインストール（エラーなくインストール完了）

```

    # apt install python3-pip
    
```

scapyのインストール（エラーなくインストール完了）

```

    # pip3 install scapy-python3
    
```

```

    # pip3 list
    Package    Version
    ---------- -------
    pip        22.0.2
    setuptools 59.6.0
    wheel      0.37.1
    
```

## pythonが正常に起動するか確認（エラーなく実行）

/usr/src/test.pyを作成し実行

.pyファイルの内容↓

```

    print("Docker")
    
```

```

    # python3 test.py
    表示結果↓
    Docker
    
```

## scapyの確認

/usr/src/testScapy.pyを作成し実行  
.pyファイルの内容↓

```

    from scapy.all import *
    print("Scapyy")
    
```

testScapy.pyの実行

```

    # python3 testScapy.py
    Traceback (most recent call last):
      File "/usr/src/testScapy.py", line 1, in <module>
        from scapy.all import *
    
```
CC BY-SA 4.0
2022-11-08T23:37:15.417
92093
2023-04-10T09:54:12.343
2022-11-09T01:29:49.257
3060
question
python python3 ubuntu docker
Docker ubuntu python環境でScapyの実行について
# 原因？

最後のエラーの文章が途中で切れているので想像ですが、途中まではDockerコンテナ内部で作業ができているものの、途中でWSL2に出てしまい、結果 WSL2
側で `python3` や `scapy` がインストールされているもののコンテナ内部には `scapy`
が入っておらず、そこでエラーが出ているのではないでしょうか。

おそらく、 `ModuleNotFoundError: No module named 'scapy'` というエラーが続いているものだと思われます。

# 解決方法

現在のエラーについては、コンテナ内で `pip3 install scapy-python3` を再度行えば解決できそうです。

また、次のことを確実にしてください。

  * Docker コンテナ内部で `scapy` をインストールしている
  * シェルでの作業が Docker コンテナ内部なのか、 WSL2なのかを明確にする

`Dockerfile` を記述し、 `docker exec` を行わずに必要なライブラリがインストールされているイメージを作成するのも有効です。
CC BY-SA 4.0
2023-04-10T09:54:12.343
94473
2023-04-10T09:54:12.343
29826
92093
answer