aptにそのパッケージがない場合は、Debian / DevuanにPythonパッケージをインストールしてください。

aptにそのパッケージがない場合は、Debian / DevuanにPythonパッケージをインストールしてください。

pandasqlDevuan(またはDebian)システムにシステム全体のPythonパッケージをインストールしたいと思います。 Pythonパッケージのインデックスにあるが(dpkg)パッケージがないようです。実際には存在しないとしましょう。

これでこの操作を試みると、pip install pandasql仮想環境を使用するように求められます。

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.

...しかし、仮想環境は私が望むものではありません。fooシステム全体にインストールしたいです。どうすればいいですか?

ノート:

  • 可能であれば、おおよその答えよりももっと一般的に答えてくださいpandasql
  • Devuan Excalibur(~= Debian Trixie), Python 3.11.6, x86_64 マシン

ベストアンサー1

Debianがこれを許可しないという事実はどこかから来ています:pipシステム全体のインストールは設計上のシステム管理Pythonのインストールと互換性がありません。ピップ自身も悟った--systemインストールを「デフォルト」から「ユーザーがそれを指定し、自分が実行している作業を知りたい」にダウングレードする場合。 Debian は、このように仕事を台無しにすることができることをよく知っているので、そうすることができるpipソフトウェアを提供していません。

理論については多すぎる(より多くの背景)なぜDebianがこれを防ぐのか。

今練習してみましょう:

どうですか?

したがって、あなたがしなければならないことは、pip install --system pandasqlDebianと互換性があり安全な方法で行い、依存関係を更新するときにすべてが破損しないようにすることです。これには、pipパッケージから依存関係のDebianパッケージ名を推測し、依存関係が変更されたときに正しく機能しないパッケージが残らないようにすることが含まれます。

当然、Debianのソフトウェアのインストール方法はDebianパッケージを利用することです。更新が可能で、dpkg互いのファイルを上書きしないようにする依存関係のリストがあり、完全に削除される可能性があります。全体的に、全体的なシステムの観点から見ると、pipパッケージよりも優れています。あなたはそれが欲しい!

あなたのために困難な作業を行う小さなヘルパープログラムがあります。sudo apt install pypi2deb使用することは難しくありません。

mkdir package_pandasql
cd package_pandasql
# Try an initial build
py2dsp --build pandasql

最後のステップが失敗し、表示error: Unmet build dependenciesされた場合は、続行するためにインストールする必要がある項目が表示されます。私:

sudo apt install python3-all python3-numpy python3-pandas python3-setuptools python3-sqlalchemy

インストールを実行してもう一度やり直してください。

py2dsp --build pandasql

成功!

package_pandasql/result/これでインストールできるインストール可能なパッケージが作成されましたsudo apt install ./result/python3-pandasql*.deb

おすすめ記事