Python Variable
  1. 仮想環境作成
  • python3.11をUbuntu22.04にインストールする方法

  • ※Ubuntu22.04では、「sudo apt-get update」⇒「sudo apt update」を使います。

  • Dockerでは、Dbianなので「apt-get update」を使います。

    sudo update-alternatives --config python3
      Selection    Path                      Priority   Status
    ===========================================================
      Selection    Path                      Priority   Status
    ===========================================================
      0            /usr/bin/python3.10        130       auto mode
      1            /opt/Python-3.9.0/python   3         manual mode
      2            /usr/bin/python3.10        130       manual mode
    * 3            /usr/bin/python3.11        100       manual mode
      4            /usr/bin/python3.8         110       manual mode
    
  • Ubuntuなどで、デフォルトのPythonとは違うPythonをインストールし、update-alternatives でデフォルトを変更した場合、apt updateを実行すると、標題のようなModuleNotFoundError: No module named ‘apt_pkg’が表示されてうまくいかないことがあります。

  • 対処

    sudo vi /usr/lib/python3/dist-packages/CommandNotFound/db/creator.py
    sudo vi /usr/lib/cnf-update-db
    
  • 1行目の「/usr/bin/python3」を「/usr/bin/python3.11」に書き換えて保存する。

  1. 仮想環境の作成
  • Pythonをアップグレードしたらvenvが作成できなくなった場合の対処 (pipなしでvenv環境を作成)
    python3 -m venv --without-pip <プロジェクト名>
    
  • 以下ようにする
    cd /matching/
    python3 -m venv --without-pip ./env
    (directoris)
    .
    ├── .dockerignore
    ├── Dockerfile
    ├── db.sqlite3
    ├── env
    ├── home
    ├── manage.py
    ├── matching
    ├── requirements
    ├── requirements.txt
    └── search
    
    (acrivate:アクティブ化)
    source env/bin/activate
    
  • (注意)バージョン管理(gitなど)を使用している場合は、プロジェクトのディレクトリになります。 その中のディレクトリは、バージョン管理から除外する必要があります。