「xdg.BaseDirectory」というモジュールはありません。

「xdg.BaseDirectory」というモジュールはありません。

syncal pip3 install 'syncall[caldav, tw]' khalをインストールした後、もう機能しません。 エラーメッセージ:

yoga-x1:~$ **khal**
Traceback (most recent call last):
  File "/usr/bin/khal", line 2, in <module>
    from khal.cli import main_khal
  File "/usr/lib/python3/dist-packages/khal/cli.py", line 35, in <module>
    from .settings import InvalidSettingsError, get_config
  File "/usr/lib/python3/dist-packages/khal/settings/__init__.py", line 1, in <module>
    from .settings import get_config  # noqa
  File "/usr/lib/python3/dist-packages/khal/settings/settings.py", line 26, in <module>
    import xdg.BaseDirectory
ModuleNotFoundError: No module named 'xdg.BaseDirectory'

現在のPythonバージョン: Python 3.10.12

Kajaには以下が必要です。 Python 3.8+

この問題をどのように解決できますか?

答え1

質問

同じライブラリの複数のバージョンがインストールされています。デフォルトのインストーラ(別名pip)は独自のバージョンをインストールしようとしましたが、正しく介入し、Ubuntuに世界中で利用可能な独自のライブラリセットがあることを提案したためxdg失敗しました。apt実際、/usr/lib/python-3/dist-packages (0.27)/ 2つの競合するパッケージマネージャがあり、パッケージマネージャは同じライブラリをインストールしようとしています。これが発生すると、これらのライブラリを必要とするアプリケーションは、すでにインストールされているライブラリではなくライブラリを見つけようとするため、混乱します。

この問題を解決するには削除する必要があります。すべて必要に応じてaptを変更し、aptpipを介して複数のPythonバージョンをインストールしてから、自分の環境にpipを正しく再インストールし、pipenvその環境にパッケージを正しくインストールしてくださいpip

固定する

したがって、修正リストを管理可能な部分に分割すると、次のようになります。

  1. pipすべてのパッケージで削除します。
  2. オペレーティングシステムとオペレーティングシステムを正しく確認し、インストールしたものに問題が aptある場合に備えて修正してください。pip
    • アンインストール時に削除したパッケージがあるかどうかをUbuntuリポジトリに確認してください。pip
    • パッケージが見つかったら、そのパッケージをインストールしてください。
  3. Pythonのバージョンチェックを実行し、次を使用して3.xバージョンを正しく追加します。デッドスネークPPA
    • 新しい3.xバージョンのPythonを使用したいとオペレーティングシステムに通知します。update-alternatives
  4. pip正しいインストールでapt
  5. pipenvAPTがインストールされているPythonバージョンのライブラリが、PIPがインストールされているバージョンと「衝突」しないように別々の環境を作成します。

インクルードコマンドの変更

これがあなたの問題に対する私の解決策です。おそらくもっと簡単な方法があります。しかし、私はすでに完了したタスクを元に戻すことを好むので、最初から始めてそこから作業します。

  1. インストールされているすべてのパッケージを削除するpip: 必要なアンインストール方法を選択します。pipでインストールされているすべてのパッケージを削除する方法は?またはPipを使用してすべてのPythonパッケージを一度に削除するには?
  2. APTが監視しているパッケージも削除した可能性があるため、再インストールする必要があるかどうかを見てみましょう。sudo apt update --fix-missing

ノート:私たちは結果が全く返されないことを望みます。このコマンドはリポジトリの更新を実行し、破損した部分をスキップします**

  1. 上記のコマンドが通常の更新出力ではなくリストを返す場合、問題は次のとおりですsudo apt install -f

ノート:パッケージ名なしで-fを使用すると、システムにインストールされているすべてのパッケージを検索して、破損または削除されたエントリを修正するインストールオプションを解決しようとします。

  1. 次のコマンドを使用して、以前に接続された Deadsnakes PPA を追加します。sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update

ノート:今回のステップは任意に選択できるしかし、お勧めします。

  1. インストールされているPythonパッケージとPythonライブラリをホストオペレーティングシステムにインストールされているvirtualenvパッケージとPythonライブラリから分離するには、Pythonを作成します。pipよりPythonユーザーマニュアル:venv ノート:venvには> = Python 3.3が必要です。

サイドノート

私はあなたが使用したいほとんどのパッケージがkhalこのように利用可能であると信じています。つまり、aptオペレーティングシステムにインストールされているPythonを介してパッケージが管理および使用されることを意味します。apt search検索に使用します。

関連情報