>  기사  >  백엔드 개발  >  Python으로 설치된 패키지를 찾는 방법

Python으로 설치된 패키지를 찾는 방법

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-06-15 11:22:044797검색

Python이 패키지를 찾는 방법

관련 권장 사항: "python video"

Python으로 설치된 패키지를 찾는 방법

이제 모든 사람의 컴퓨터에는 하나의 Python뿐만 아니라 더 많은 가상 환경이 있을 가능성이 높으며 이로 인해 패키지 설치 문제가 발생합니다. , 실수로 설치 패키지의 경로에 주의하는 것을 잊었습니다. 먼저, 가방 찾는 문제를 풀어보겠습니다. 이 질문에 대한 답은 매우 간단하지만, 많은 사람들이 이 원리를 모르고 있습니다. Python 인터프리터의 경로가 /bin/python인 경우 Python 대화형 환경을 시작하거나 이 인터프리터를 사용하여 스크립트를 실행하면 기본적으로 다음 위치를 찾습니다.

/lib(표준 라이브러리 경로)

/lib/pythonX.Y/site-packages(타사 라이브러리 경로, X.Y는 3.7, 2.6과 같이 Python에 해당하는 주 및 부 버전 번호입니다)

현재 작업 디렉터리(pwd 명령의 반환 결과)

여기서 Linux에서 기본 Python을 사용하는 경우 는 기본 옵션을 사용하여 직접 컴파일한 경우 현지의. 위의 두 번째 항목에서 마이너 버전이 다른 Python의 타사 라이브러리 경로가 다른 것을 확인할 수 있습니다. Python을 3.6에서 3.7로 업그레이드하면 이전에 설치된 타사 라이브러리를 더 이상 사용할 수 없습니다. 물론 폴더 전체를 복사해도 되지만 대부분의 경우에는 문제가 없습니다.

여러 유용한 함수

sys.executable 현재 사용되는 Python 인터프리터 경로

sys.path 현재 패키지의 검색 경로 목록

sys.prefix 현재 사용되는

예:

>>> import sys
>>> sys.executable'/home/frostming/.pyenv/versions/3.7.2/bin/python'
>>> sys.path
['', '/home/frostming/.pyenv/versions/3.7.2/lib/python37.zip',
 '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7', 
 '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/lib-dynload', 
 '/home/frostming/.local/lib/python3.7/site-packages', 
 '/mnt/d/Workspace/pipenv', '/home/frostming/.pyenv/versions/3.7.2/lib/python3.7/site-packages']
 >>> sys.prefix'/home/frostming/.pyenv/versions/3.7.2'

환경 변수를 사용하여 검색 경로 추가

패키지 경로가 위에 나열된 검색 경로 목록에 없으면 PYTHONPATH 환경 변수에 경로를 추가할 수 있습니다. (Windows의 경우;)

하지만 주의하세요. PYTHONPATH=/home/frostming/.local/lib/python2.7/site-packages와 같이 다양한 Python 버전의 패키지 경로를 PYTHONPATH에 추가하지 마세요. 기본 검색 경로, Python 3을 사용하는 경우 호환성 문제가 발생합니다.

그런데 PATH는 실행 가능한 프로그램을 찾는 데 사용되는 검색 경로입니다. 터미널에서 my_cmd 명령을 실행하면 시스템은 경로에 my_cmd가 있는지 확인하기 위해 PATH의 경로를 검색하므로 메시지가 표시됩니다. 찾을 수 없다는 프로그램이나 명령어를 인식할 수 없다면 PATH에 해당 경로가 추가되었는지 확인해야 합니다.

Python 패키지 설치 방법

요즘 Python 패키지 설치에는 pip가 기본적으로 사용됩니다. Pipenv나 poem을 사용하더라도 맨 아래 계층은 여전히 ​​pip이므로 항상 적용 가능합니다. pip를 설치하지 않은 경우 여기를 참조하세요. pip를 설치했지만 여전히 pip 명령을 사용할 수 없는 경우 이전 섹션을 참조하세요.

pip를 실행하는 방법에는 두 가지가 있습니다.

pip ...
python -m pip ...

첫 번째 방법과 두 번째 방법은 비슷합니다. 차이점은 첫 번째 방법에서 사용되는 Python 인터프리터가 일반적으로 pip 경로로 작성된다는 것입니다. /bin/pip인 경우 해당 Python 경로는 /bin/python입니다. 두 번째 방법은 Python의 위치를 ​​명시적으로 지정합니다. 이 규칙은 모든 Python 실행 프로그램에 적용됩니다. 프로세스는 아래 그림에 나와 있습니다.

Python으로 설치된 패키지를 찾는 방법

그런 다음 사용자 정의 구성을 추가하지 않고 pip를 사용하여 패키지를 설치하면 /lib/pythonX.Y/site-packages에 자동으로 설치됩니다(는 이전 단락에서 가져옴). , 실행 프로그램은 /bin에 설치됩니다. 명령줄에서 my_cmd를 사용하여 직접 실행해야 하는 경우 PATH에 추가해야 합니다.

pip

--prefix PATH에서 설치 위치를 변경하는 옵션, 를 지정된 값--root ROOT_PATH로 바꾸고, 앞에 ROOT_PATH를 추가합니다(예:-root /home). /frostming, 는 /usr에서 /home/frostming/usr--target TARGET으로 변경됩니다. 설치 위치를 TARGET

virtual Environment

가상 환경은 서로 다른 종속성 패키지를 격리하는 것입니다. 종속성 충돌 문제를 방지하기 위해 서로 다른 경로에 설치됩니다. Python이 패키지를 설치하는 방법을 이해하고 나면 가상 환경(virtualenv, venv 모듈)의 원리를 이해하는 것은 어렵지 않습니다. 실제로 virtualenv myenv를 실행하면 새로운 Python 인터프리터가 myenv/bin에 복사되고 myenv/lib, myenv/lib/pythonX.Y/site-packages와 같은 디렉터리가 생성됩니다(venv 모듈은 복사에 사용되지 않지만 결과는 기본적으로 동일합니다). 소스 myenv/bin/activate를 실행하면 myenv/bin이 PATH 앞에 삽입되므로 복사된 Python 인터프리터가 먼저 검색됩니다. 이런 방식으로 나중에 패키지를 설치할 때 가 myenv가 되어 설치 경로가 격리됩니다.

요약

여기서 패키지 경로 검색에서 가장 중요한 것은 경로 접두어이며, 이 값은 사용된 Python 인터프리터 경로에서 파생된다는 것을 알 수 있습니다. 따라서 패키지의 경로를 찾으려면 인터프리터의 경로만 알면 됩니다. 패키지의 경로가 변경되는 경우 올바른 PATH 설정을 통해 원하는 Python 인터프리터를 지정하기만 하면 됩니다.

이제 처음의 세 가지 질문으로 돌아가서 문제를 해결할 수 있나요? 댓글 영역에 문제 해결 단계나 해결 방법을 작성하세요.

이 문서의 예는 모두 Unix 경로 규칙을 사용합니다. Windows 시스템인 경우 적절하게 변경해야 합니다. 예를 들어 /bin은 /Scripts↩

이어야 합니다.

위 내용은 Python으로 설치된 패키지를 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.