패키지를 설치하고 있습니다 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
참고 : -a
MacOS에서는 매개 변수를 사용할 수 없으므로 오래된 고양이가 더 휴대하기 편리합니다.
답변
이 솔루션은 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'])
답변
