패키지를 설치하고 있습니다 requirements.txt
pip install -r requirements.txt
requirements.txt파일을 읽습니다
Pillow
lxml
cssselect
jieba
beautifulsoup
nltk
lxml설치에 실패한 유일한 패키지이므로 모든 것이 실패합니다 (주석에서 larsk가 지적한 예상 결과). 그러나 lxml실패 pip후에도 계속해서 나머지 패키지를 다운로드합니다.
내가 이해 한 바에 pip install -r requirements.txt나열된 패키지 중 하나라도 설치에 실패하면 명령이 실패합니다 requirements.txt.
실행할 pip install -r requirements.txt수있는 것을 설치하고 할 수없는 패키지를 건너 뛰거나 무언가 실패한 것을 끝내기 위해 종료하도록 실행할 때 전달할 수있는 인수 가 있습니까?
답변
각 줄을 실행 pip install하면 해결 방법이 될 수 있습니다.
cat requirements.txt | xargs -n 1 pip install
참고 : -aMacOS에서는 매개 변수를 사용할 수 없으므로 오래된 고양이가 더 휴대하기 편리합니다.
답변
이 솔루션은 requirements.txt에서 빈 줄, 공백 줄, # 주석 줄, 공백 -then- # 주석 줄을 처리합니다.
cat requirements.txt | sed -e '/^\s*#.*$/d' -e '/^\s*$/d' | xargs -n 1 pip install
sed 마술에 대한 이 답변의 모자 팁 .
답변
Windows의 경우 :
핍 버전> = 18
import sys
from pip._internal import main as pip_main
def install(package):
pip_main(['install', package])
if __name__ == '__main__':
with open(sys.argv[1]) as f:
for line in f:
install(line)
핍 버전 <18
import sys
import pip
def install(package):
pip.main(['install', package])
if __name__ == '__main__':
with open(sys.argv[1]) as f:
for line in f:
install(line)
답변
xargs당신이 당신의 요구 사항 파일에 주석이나 빈 줄이있는 경우 솔루션 작품은 성가신을 이식성 문제 (BSD / GNU)가 및 / 또는 수 있지만.
이러한 동작이 필요한 유스 케이스의 경우, 예를 들어 항상 설치해야하는 핵심 종속성 만 나열하는 두 개의 별도 요구 사항 파일과 사례의 90 %에 해당하는 비 핵심 종속성이있는 다른 파일을 사용합니다. 대부분의 사용 사례에는 필요하지 않습니다. 그것은 Recommends데비안 꾸러미 의 섹션과 같습니다 .
다음 쉘 스크립트 (필수 sed)를 사용하여 선택적 종속성 을 설치합니다 .
#!/bin/sh
while read dependency; do
dependency_stripped="$(echo "${dependency}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')"
# Skip comments
if [[ $dependency_stripped == \#* ]]; then
continue
# Skip blank lines
elif [ -z "$dependency_stripped" ]; then
continue
else
if pip install "$dependency_stripped"; then
echo "$dependency_stripped is installed"
else
echo "Could not install $dependency_stripped, skipping"
fi
fi
done < recommends.txt
답변
Windows 사례에 대해 Etienne Prothon에게 감사드립니다.
그러나 pip 18로 업그레이드 한 후 pip 패키지는 main을 공개하지 않습니다. 따라서 이와 같은 코드를 변경해야 할 수도 있습니다.
# This code install line by line a list of pip package
import sys
from pip._internal import main as pip_main
def install(package):
pip_main(['install', package])
if __name__ == '__main__':
with open(sys.argv[1]) as f:
for line in f:
install(line)
답변
Windows의 경우 :
import os
from pip.__main__ import _main as main
error_log = open('error_log.txt', 'w')
def install(package):
try:
main(['install'] + [str(package)])
except Exception as e:
error_log.write(str(e))
if __name__ == '__main__':
f = open('requirements1.txt', 'r')
for line in f:
install(line)
f.close()
error_log.close()
- 로컬 디렉토리를 작성하고
requirements.txt파일을 넣으십시오 . - 위의 코드를 복사하여 동일한 디렉토리에 파이썬 파일로 저장하십시오.
.py예를 들어 확장 프로그램 을 사용해야 합니다.install_packages.py - cmd를 사용하여이 파일을 실행하십시오.
python install_packages.py - 언급 된 모든 패키지는 전혀 멈추지 않고 한 번에 설치됩니다. 🙂
설치 기능에서 다른 매개 변수를 추가 할 수 있습니다. 처럼:
main(['install'] + [str(package)] + ['--update'])
답변
