요구 사항을 가져오는 방법.Poetry를 사용하는 기존 프로젝트의 txt
저는 기존 프로젝트에서 시를 시도하고 있습니다.원래 pyenv와 virtual env를 사용했기 때문에 저는requirements.txt
프로젝트의 종속성이 포함된 파일입니다.
다음 항목을 가져오려고 합니다.requirements.txt
처음으로 종속성을 로드할 수 있도록 Poetry를 사용한 파일입니다.저는 시의 문서를 살펴보았지만, 이것을 할 수 있는 방법을 찾지 못했습니다.좀 도와 주시겠습니까?
모든 패키지를 수동으로 추가할 수 있다는 것은 알지만 패키지가 많기 때문에 좀 더 자동화된 프로세스를 원합니다.
poetry
직접적으로 지원하지 않습니다.그러나 필수 패키지의 핸드메이드 목록(최소한 버전 번호는 포함하지 않고 주요 종속성만 포함하는 경우)을 사용하면 다음과 같은 작업을 수행할 수 있습니다.
$ cat requirements.txt | xargs poetry add
조금 늦었을 수도 있지만 그냥 사용하시면 됩니다.
poetry add $( cat requirements.txt )
저는 논평할 충분한 명성은 없지만, @Liang의 대답의 향상은 반향을 생략하고 시 그 자체를 부르는 것입니다.
cat requirements.txt | grep -E '^[^# ]' | cut -d= -f1 | xargs -n 1 poetry add
의 경우,를 나의경우성로패추다가니습했키를지으적공이은것▁the▁packages▁to▁in에 추가했습니다.pyproject.toml
java.
참고로 이것은 나의 일부입니다.requirements.txt
파일 이름:
pytz==2020.1 # https://github.com/stub42/pytz
python-slugify==4.0.1 # https://github.com/un33k/python-slugify
Pillow==7.2.0 # https://github.com/python-pillow/Pillow
전를걸때화를 부를 때.cat requirements.txt | grep -E '^[^# ]' | cut -d= -f1
하세요.xargs -n 1 poetry add
시연용) 다음을 출력합니다.
pytz
python-slugify
Pillow
# NOTE: this will install the latest package - you may or may not want this.
개발 종속성을 추가하는 것은 개발 종속성을 추가하는 것만큼 간단합니다.-D
또는--dev
논쟁.
# dev dependancies example
cat requirements-dev.txt | grep -E '^[^# ]' | cut -d= -f1 | xargs -n 1 poetry add -D
마지막으로 개발 요구 사항이 상위 요구 사항 파일에서 설치되는 경우 다음과 같이 하십시오.
-r base.txt
package1
package2
그러면 이것은 시가 실행될 때 오류를 생성할 것이지만, 그것은 여전히 과거에 계속될 것입니다.-r base.txt
예상대로 패키지를 정렬하고 설치합니다.
여기에 설명된 대로 시를 설치하여 Linux Manjaro에서 테스트했습니다.
Windows PowerShell 사용자를 위한 단일 라인:
@(cat requirements.txt) | %{&poetry add $_}
PowerShell을 사용한 파이프 인수에 대한 자세한 내용은 다음과 같은 유용한 답변을 참조하십시오.
일반적인 요구사항만 사용하면 됩니다.txt 및 awk로 버전 번호를 필터링합니다.
awk -F '==' '{print $1}' requirements.txt | xargs -n1 poetry add
-F
의 첫 $1은 분할의 첫 번째 인수입니다.입력 파일이 마지막 인수로 나옵니다.나중에 파이프로 연결할 수 있습니다.poetry add
용사를 xargs -n 1
을 부르다poetry add
한 번에 공백으로 구분된 문자열을 사용하지 않고 각 줄을 연속적으로 사용합니다.을 한 하십시오.-n 1
또한 시 환경이 이미 존재하는지 확인합니다.
요구 사항을 소비하는 것뿐입니다.txt 필터를 생략하고 사용합니다.
awk '{print $1}' requirements.txt | xargs -n1 poetry add
하만다른도구은들 같은 다른 cat
그 경우에도 괜찮습니다.
제가 찾은 가장 좋은 방법은 다음과 같습니다.
$ for item in $(cat requirements.txt); do poetry add "${item}"; done
이것만을 위한 도구를 만들었습니다. 코드.
와 함께 합니다.pipx install poetry-add-requirements.txt
,
그 다음에 달려라poeareq
.
사용.
려달을 합니다.poetry-add-requirements.txt
필요에 따라 요구 사항을 지정합니다.txt 파일 및--dev
개발 종속성을 위해.
poeareq
는 에 대한 별칭으로 제공됩니다.poetry-add-requirements.txt
.
$ poeareq --help
usage: poeareq [-h] [-D] [requirements.txt files ...]
Add dependencies specified in requirements.txt to your Poetry project
positional arguments:
requirements.txt file(s)
Path(s) to your requirements.txt file(s) (default: requirements.txt)
options:
-h, --help show this help message and exit
-D, --dev Add to development dependencies (default: False)
특징들
- 요구 사항 문자 집합을 자동으로 탐지합니다.txt 파일 및 표준화된 종속성 사양 제공
poetry
. - 에 .
poetry add
message
만약 당신이 그것을 가지고 있다면, 이것은 작동합니다.#
요구사항 파일의 주석(줄의 시작 부분 또는 줄의 끝 부분):
poetry add $(sed -e 's/#.*//' -e '/^$/ d' < requirements.txt)
https://www.grymoire.com/Unix/Sed.html#uh-30
라이너 하나:
cat requirements.txt | grep -E '^[^# ]' | cut -d= -f1 | xargs -n 1 poetry add
파워셸의 경우:
$reqs = @(cat requirements.txt)
for($i = 0; $i -lt $reqs.length; $i++){poetry add $reqs[i]}
이렇게 하면 요구 사항 파일의 주석이나 다른 내용이 무시되지 않습니다.이것은 엄격하게 원시 텍스트로 간주하기 때문에 모든 줄이 패키지가 될 것으로 예상됩니다.
이러한 답변 중 어느 것도 충분하지 않다는 것을 알게 되어 다음과 같은 답변을 작성했습니다.
https://github.com/src-r-r/python-stanza
이것은 신생아이므로 기부를 환영하지만, 지금까지는 쿠키커터에 매우 우호적입니다.
- 으로 동으로검을 합니다.
setup.py
. - 다중 요구 사항을 허용합니다.개발 종속성 또는 일반 종속성에 대해 지정할 txt 파일
- 이름과 버전을 덮어쓸 수 있습니다.
- 사항 또참요을추예가니다합항사구조한예)을 합니다.
-r ./special-requirements.txt
을 클릭합니다.
Powershell이 아닌 Windows 명령 프롬프트를 사용하는 Windows 사용자의 경우 이 기능이 작동합니다.
FOR /F "usebackq delims=" %G IN (requirements.txt) DO poetry add --lock %G
요구 사항에서 이동할 때 이 문제가 발생했습니다.Poetry를 사용하기 위한 txt 파일.
cmd를 사용하여 윈도우즈에서 명령을 실행하려면 .bat 파일로 실행할 수 있습니다.
for /f "tokens=*" %%i in (requirements.txt) do (
poetry add %%i
)
Windows 사용자용
xargs
유닉스 계열 시스템에서 일반적으로 사용되는 명령어는 표준 명령어가 아닙니다.그러나 PowerShell 명령어를 사용하여 다른 방법을 사용하여 유사한 결과를 얻을 수 있습니다.
사용 Get-Content requirements.txt | ForEach-Object { poetry add $_ }
이 명령은 요구 사항의 내용을 읽습니다.Get-Content를 사용하는 txt 파일을 사용한 다음 ForEach-Object를 사용하여 각 행을 시 추가로 전달합니다.요구 사항의 각 행.txt 파일은 Poetry add에 인수로 전달되며 Poetry를 사용하여 프로젝트에 종속성이 추가됩니다.
프로젝트의 루트 디렉터리에 있어야 합니다.
언급URL : https://stackoverflow.com/questions/62764148/how-to-import-requirements-txt-from-an-existing-project-using-poetry
'programing' 카테고리의 다른 글
Node.js 17.0.1 Gatsby 오류 - "디지털 봉투 루틴:: 지원되지 않음...ERR_OSSL_EVP_지원되지 않음" (0) | 2023.08.30 |
---|---|
괜찮은 투명한 아약스 스피너를 어디서 찾을 수 있습니까? (0) | 2023.08.30 |
CSS 그리드의 동일한 너비 열 (0) | 2023.08.30 |
__read_macro, __init, __macro에 대한 좋은 설명 (0) | 2023.08.30 |
SQL: 행을 업데이트하고 쿼리 1개로 열 값을 반환합니다. (0) | 2023.08.30 |