일반 사이트 패키지는 쓸 수 없으므로 기본값은 사용자 설치입니다.

일반 사이트 패키지는 쓸 수 없으므로 기본값은 사용자 설치입니다.

방금 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

사이트 패키지에 쓸 수 없다는 메시지가 나타나는 이유가 궁금합니다. 내가 루트 사용자가 아니기 때문인가요? 하지만 그렇다면 이러면 안 된다.노력하다일부 루트 전용 폴더에 씁니다. 그렇다면아니요저는 루트가 아니기 때문에 수정해야 할(또는 루트 사용자 수정이 필요한) 부적절한 권한이 있는 디렉토리는 무엇입니까?

답변1

사이트 패키지에 쓸 수 없다는 메시지가 나타나는 이유가 궁금합니다.

이는 pip가 기본적으로 시스템 전체 디렉터리("site-packages")에 설치를 시도하기 때문입니다.

내가 루트 사용자가 아니기 때문인가요?

예.

하지만 그렇다면 일부 루트 전용 폴더에 쓰려고 시도해서는 안 됩니다.

실제로는 그렇지 않습니다. 루트가 아닌 사용자가 실행한다는 것을 알고 결과적으로 실패할 것이 거의 확실하다는 것을 알고 있으므로 이 경우 기본적으로 사용자별 디렉터리에 설치하려고 해서는 안 됩니다( 항상 그런 것은 아니지만). 하지만 여전히 시도하고, 실패하고, 불평하는 것은 어리석은 일입니다. 그러나 이것이 바로 개발자가 어떤 이유로든 해야 한다고 생각하는 것입니다.

다음과 같이 실행하면 경고를 피할 수 있습니다.

pip install --user some_package_name

...하지만 실제로 일어나야 할 일은 누군가가 이 문제에 대한 버그 보고서를 제출하고 개발자가 시도하고 실패하지 않도록 의존하는 것입니다.

답변2

이 동작은 의미가 있습니다. 실제로 pip를 사용하여 시스템 전체 사이트 패키지에 소프트웨어를 설치하면 안 됩니다. 쓰기 가능하도록 구부러진 일종의 가상 환경에 있지 않는 한 시스템 패키지 관리자와 충돌이 발생하기 때문입니다. 위치. 이것은 실제로 당신이 루트인지 아닌지와는 아무런 관련이 없습니다.

관련 정보