94401
Debian10をベースとしたOSを搭載した組込み機器内で実行されるPythonアプリがあり、  
それをVMware上でエミュレートする環境を構築中です。  
VMware上でPythonアプリを実行すると、とあるパッケージの関数がないというエラーで、おそらくパッケージバージョンなどの違いがあると推測しています。

組込み機器内では、正常にPythonスクリプトが動いています。  
組込み機器内でのPythonパッケージが確認できません。

# 確認したこと

pip3 list:pip3が存在していません。  
python3 -m pip list：pipがありません。  
python3 -m pip3 list：pipがありません。

/usr/local/lib/python3.7/dist-packagesにパッケージが存在しているようです。  
しかし、確信がありません。上記で問題としたパッケージ自体が存在していないためです。

なぜpipがなくパッケージが存在しているのでしょうか？  
適用されるパッケージの一覧を調べるためにはどうすればよいでしょうか？
CC BY-SA 4.0
2023-04-03T02:20:59.730
94399
2023-04-03T05:52:11.867
32891
question
python debian
組込み機器内 DebianでのPython3パッケージの確認方法
「Debian10をベースとしたOS」での Pythonパッケージの確認方法, について

まず, OS(システム)側で Pythonを利用する環境 (*NIX環境ではよくある) では  
OS側のパッケージ管理システムで管理されていることがあり, pip利用は控えたほうがよいでしょう  
システム側で利用しているパッケージを上書きするとシステムが不安定になるので

Pythonパッケージのバージョンは, APT系パッケージ管理システムなら以下のように  
(`--installed` 指定なら インストール済み だけ, オプションなしならすべて)

```

    $ apt list python* --installed
    一覧表示... 完了
    python-apt-common/jammy-updates,jammy-updates,now 2.4.0ubuntu1 all [インストール済み、自動]
    python-is-python3/jammy,jammy,now 3.9.2-2 all [インストール済み]
    python3-apport/jammy-updates,jammy-updates,now 2.20.11-0ubuntu82.3 all [インストール済み、自動]
    python3-apt/jammy-updates,now 2.4.0ubuntu1 amd64 [インストール済み、自動]
    python3-aptdaemon.gtk3widgets/jammy,jammy,now 1.1.1+bzr982-0ubuntu39 all [インストール済み、自動]
    python3-aptdaemon/jammy,jammy,now 1.1.1+bzr982-0ubuntu39 all [インストール済み、自動]
    python3-blinker/jammy,jammy,now 1.4+dfsg1-0.4 all [インストール済み、自動]
    python3-brlapi/jammy-updates,now 6.4-4ubuntu3 amd64 [インストール済み、自動]
    python3-cairo/jammy,now 1.20.1-3build1 amd64 [インストール済み、自動]
    python3-certifi/jammy,jammy,now 2020.6.20-1 all [インストール済み、自動]
    (略)
    
```

また, 以下のような確認も可能 (パッケージによっては `__version__` ではないかもしれない)

```

    $ python
    Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import psutil
    >>> psutil.__
    psutil.__all__             psutil.__eq__(             psutil.__le__(             psutil.__reduce_ex__(
    psutil.__annotations__     psutil.__file__            psutil.__loader__          psutil.__repr__()
    psutil.__author__          psutil.__format__(         psutil.__lt__(             psutil.__setattr__(
    psutil.__cached__          psutil.__ge__(             psutil.__name__            psutil.__sizeof__()
    psutil.__class__(          psutil.__getattribute__(   psutil.__ne__(             psutil.__spec__
    psutil.__delattr__(        psutil.__gt__(             psutil.__new__(            psutil.__str__()
    psutil.__dict__            psutil.__hash__()          psutil.__package__         psutil.__subclasshook__(
    psutil.__dir__(            psutil.__init__(           psutil.__path__            psutil.__version__
    psutil.__doc__             psutil.__init_subclass__(  psutil.__reduce__()
    >>> psutil.__version__
    '5.9.0'
    
```

* * *

**仮想環境**

Debianなど, システム側で Pythonが利用されている場合, Pythonパッケージ使用する時は virtual environment
(仮想環境)使います (VMWare などとは異なる)  
venv, pipenv, poetry, Anaconda などがある

参考: (docs.python.org) [venv ---
仮想環境の作成](https://docs.python.org/ja/3/library/venv.html)

  * Anacondaや pipenvの 仮想環境などでは, その環境に activate しないと, (その環境の)パッケージは扱えない
  * activateすれば, それら仮想環境の パッケージ管理コマンドでバージョンのリストを得ることができるはず (大抵それは pipではないコマンド)
CC BY-SA 4.0
2023-04-03T04:39:36.353
94401
2023-04-03T05:52:11.867
2023-04-03T05:52:11.867
43025
43025
94399
answer