通常のサイトパッケージは書き込めないため、デフォルトはユーザーインストールです。

通常のサイトパッケージは書き込めないため、デフォルトはユーザーインストールです。

私はDevuan GNU / Linux chimaeraといくつかのパッケージを手動でインストールしました。またインストールされましたpython-is-python3

これで、たとえば次のように実行されます。

pip install pymonetdb

私は得る:

Defaulting to user installation because normal site-packages is not writeable
Collecting pymonetdb
  Downloading pymonetdb-1.6.2-py2.py3-none-any.whl (74 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 74.6/74.6 kB 867.9 kB/s eta 0:00:00
Installing collected packages: pymonetdb
Successfully installed pymonetdb-1.6.2

サイトパッケージに書き込めないというメッセージが表示される理由は疑問です。私はrootユーザーではないからですか?だが、それならこれではならない。努力する一部のルート専用フォルダに書き込みます。もしそうならいいえ私はrootではないので、変更する必要がある(またはrootユーザーの変更が必要な)不適切な権限を持つディレクトリは何ですか?

答え1

サイトパッケージに書き込めないというメッセージが表示される理由は疑問です。

これは、pipがデフォルトでシステム全体のディレクトリ( "site-packages")にインストールしようとするためです。

私はrootユーザーではないからですか?

はい。

ただし、その場合は、一部のルート専用フォルダに書き込もうとしないでください。

実際にはそうではありません。 root以外のユーザーが実行していることを知り、結果として失敗することがほとんど確実であることを知っているので、この場合、デフォルトではユーザー固有のディレクトリにインストールしようとしないでください(常にそうではありませんが)。しかし、まだ試して、失敗し、文句を言うのは愚かなことです。しかし、これはまさに開発者が何らかの理由で行うべきだと思うものです。

次のように実行すると、警告を回避できます。

pip install --user some_package_name

...しかし実際に起こるべきことは、誰かがこの問題のバグレポートを提出し、開発者が試して失敗しないように頼ることです。

答え2

この動作は意味があります。実際、pipを使用してシステム全体のサイトパッケージにソフトウェアをインストールしないでください。これは、書き込み可能に曲げられた仮想環境の一種でない限り、システムパッケージマネージャと競合が発生するためです。場所。これは実際にあなたがルートかどうかとは何の関係もありません。

関連情報