수색…


소개

때로는 Python 내부에서 pip package manager를 사용해야 할 수도 있습니다. 일부 가져 오기가 ImportError 시킬 수 있고 예외를 처리하려고 할 때. Windows에서 Python_root/Scripts/pip.exe 를 언팩하면 __main__.py 파일에 저장되며, 여기에는 pip 패키지의 main 클래스가 임포트됩니다. 이것은 pip 실행 파일을 사용할 때마다 pip 패키지가 사용됨을 의미합니다. 실행 파일로 pip를 사용하려면 pip : PyPI Package Manager를 참조하십시오.

통사론

  • pip. <function | attribute | class> 여기서 function은 다음 중 하나입니다.
    • 자동 완성 ()
      • 주 옵션 파서 (및 옵션) 및 하위 명령 (및 옵션)에 대한 명령 및 옵션 완성. 완료 쉘 스크립트 (bash, zsh 또는 fish) 중 하나를 사용하여 활성화하십시오.
    • check_isolated (args)
      • param args {list}
      • returns {boolean}
    • create_main_parser ()
      • {pip.baseparser.ConfigOptionParser 객체}를 반환합니다.
    • main (args = None)
      • param args {list}
      • returns {integer} 실패하지 않은 경우 0을 반환합니다.
    • parseopts (args)
      • param args {list}
    • get_installed_distributions ()
      • {list}를 반환합니다.
    • get_similar_commands (name)
      • 명령 이름 자동 수정.
      • 매개 변수 이름 {string}
      • returns {boolean}
    • get_summaries (ordered = True)
      • 수율은 정렬 된 (명령 이름, 명령 요약) 튜플입니다.
    • get_prog ()
      • {string}을 반환합니다.
    • dist_is_editable (dist)
      • 배포판은 편집 가능한 설치입니까?
      • param dist {object}
      • returns {boolean}
    • commands_dict
      • 속성 {사전}

명령의 사용 예

import pip

command = 'install'
parameter = 'selenium'
second_param = 'numpy' # You can give as many package names as needed
switch = '--upgrade'

pip.main([command, parameter, second_param, switch])

필요한 매개 변수 만 의무적이므로 pip.main(['freeze'])pip.main(['freeze', '', '']) 모두 받아 들일 수 있습니다.

일괄 설치

하나의 호출에서 많은 패키지 이름을 전달할 수 있지만, 한 번의 설치 / 업그레이드가 실패하면 전체 설치 프로세스가 중지되고 '1'상태로 끝납니다.

import pip

installed = pip.get_installed_distributions()
list = []
for i in installed:
    list.append(i.key)

pip.main(['install']+list+['--upgrade'])

일부 설치가 실패 할 때 중지하지 않으려면 설치를 루프로 호출하십시오.

for i in installed:
        pip.main(['install']+i.key+['--upgrade'])

ImportError 예외 처리

파이썬 파일을 모듈로 사용할 때 패키지가 설치되어 있는지 항상 확인 할 필요는 없지만 여전히 스크립트에 유용합니다.

if __name__ == '__main__':
    try:
        import requests
    except ImportError:
        print("To use this module you need 'requests' module")
        t = input('Install requests? y/n: ')
        if t == 'y':
            import pip
            pip.main(['install', 'requests'])
            import requests
            import os
            import sys
            pass
        else:
            import os
            import sys
            print('Some functionality can be unavailable.')
else:
    import requests
    import os
    import sys

강제 설치

예를 들어 버전 3.4의 많은 패키지는 3.6에서 제대로 실행되지만 특정 플랫폼에 대한 배포판이없는 경우에는 설치할 수 없지만 해결 방법이 있습니다. .whl 파일 (바퀴라고도 함)의 명명 규칙에 따라 특정 플랫폼에 패키지를 설치할 수 있는지 여부가 결정됩니다. 예 : scikit_learn‑0.18.1‑cp36‑cp36m‑win_amd64.whl [package_name] - [version] - [python interpreter] - [python-interpreter] - [Operating System] .whl. 휠 파일의 이름이 변경되면 플랫폼이 일치하므로 py는 플랫폼 또는 파이썬 버전이 일치하지 않아도 패키지 설치를 시도합니다. 이름에서 플랫폼 또는 인터프리터를 제거하면 pip 모듈 kjhfkjdf.whl is not a valid wheel filename. 의 최신 버전에서 오류가 발생합니다 kjhfkjdf.whl is not a valid wheel filename. .

대체로 .whl 파일은 아카이버를 7-zip으로 압축을 풀 수 있습니다. - 일반적으로 배포 메타 폴더와 소스 파일이있는 폴더가 있습니다. 이 파일에 설치 스크립트가 포함되어 있지 않으면이 소스 파일을 site-packges 디렉토리에 압축을 site-packges 됩니다. 그렇다면 먼저 실행해야합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow