때로는 파이썬 소스 코드를 다운로드하여 github
모든 종속성을 설치하는 방법을 모릅니다. requirements.txt
파일 이 없으면 직접 작성해야합니다. 파이썬 소스 코드 디렉토리가 주어지면 requirements.txt
가져 오기 섹션에서 자동으로 만들 수 있습니까?
pip freeze
의 현재 버전을 덤프 all
합니다. b) pip는 pip를 통해 설치된 모듈 만 나열합니다
때로는 파이썬 소스 코드를 다운로드하여 github
모든 종속성을 설치하는 방법을 모릅니다. requirements.txt
파일 이 없으면 직접 작성해야합니다. 파이썬 소스 코드 디렉토리가 주어지면 requirements.txt
가져 오기 섹션에서 자동으로 만들 수 있습니까?
pip freeze
의 현재 버전을 덤프 all
합니다. b) pip는 pip를 통해 설치된 모듈 만 나열합니다
답변:
가상 환경을 사용한다면 pip freeze > requirements.txt
괜찮습니다. 그렇지 않을 경우 , pigar는 당신을 위해 좋은 선택이 될 것입니다.
그건 그렇고, 나는 그것이 2.6에서 작동하는지 보장하지 않습니다.
업데이트 :
개발 흐름을 개선 하려면 Pipenv 또는 기타 도구가 권장됩니다.
들어 파이썬 3 아래 사용
pip3 freeze > requirements.txt
pip3 freeze > requirements.txt
은 질문하기 전에 시도해 보는 것이 좋습니다 .
pip3 freeze > requirements.txt
하고 나는 내가 실제로 등을 사용하고 일부 패키지를 찾을 수에 놀랐 argparse
하고 configparser
. 파이썬 코어의 일부이기 때문입니까? 더 나은 대답은 pipreqs
프로젝트에서 사용하는 요구 사항 만 나열하기 때문에 아래 에서 사용 하는 것입니다.
argparse
그리고 configparser
Python3 표준 라이브러리에 속해, 그래서, 무슨 잘못 pip3 freeze
? 나는 당신의 요점을 얻지 못합니다.
pip3 freeze
내 환경에 설치된 모든 Python 패키지 목록을 pipreqs
제공 하는 반면 필자가 찾고있는 소스 코드에서 실제로 사용 된 모든 패키지를 제공합니다. 그 외에는 아무 문제가 없습니다.
다음 코드를 사용하여 requirements.txt 파일을 생성 할 수 있습니다.
pip install pipreqs
pipreqs /path/to/project
pipreq와 관련된 자세한 정보는 여기를 참조하십시오 .
때때로을 만나지 pip freeze
만 현재 프로젝트에서 사용하지 않는 패키지를 포함하여 환경의 모든 패키지를 저장합니다.
pipreqs
. 파이썬 2.6에 설치하고 동일한 경고가 표시되었지만 requirements.txt
@DJanssens
필자의 경우 Anaconda를 사용하므로 환경 내 conda 터미널에서 다음 명령을 실행하면 문제가 해결되고 자동 으로이 요구 사항 txt 파일이 만들어졌습니다.
conda list -e > requirements.txt
이 Github 링크 pratos / condaenv.txt에서 가져 왔습니다.
오류가 발생하고 아나콘다를 사용하는 경우 .yml 옵션을 사용하십시오.
conda env export > <environment-name>.yml
다른 사람이 환경을 사용하려면 ... 또는 다른 컴퓨터에서 새 환경을 만드는 경우 : conda env create -f .yml
pip install requirements.txt
거부 하는 종속성 및 구문 세부 사항 이 있습니다.
python3.7에 대해 pip3을 실행하십시오.
pip3 freeze >> yourfile.txt
위 명령을 실행하기 전에 가상 환경을 작성했는지 확인하십시오.
python3 :
pip3 install virtualenv
python3 -m venv <myenvname>
python2 :
pip install virtualenv
virtualenv <myenvname>
그런 다음 소스 코드를 디렉토리에 넣으십시오. 파이썬 파일을 지금 실행하면 네이티브가 아닌 모듈을 사용하는 경우 시작되지 않을 것입니다. 당신은 그 모듈 실행을 설치할 수 있습니다
pip3 install <module> or pip install <module>
이것은 현재 환경을 제외하고 전체 모듈 목록에 영향을 미치지 않습니다.
이제 맨 위에서 명령을 실행할 수 있으며 이제 가상 환경에 설치 한 모듈 만 포함하는 요구 사항 파일이 있습니다. 이제 맨 위에서 명령을 실행할 수 있습니다.
모든 사람들이 환경을 사용하는 것이 좋습니다.
이것이 도움이 되었기를 바랍니다.
광산 즉, 같은 문제에 직면하면 가상 환경에 있지 및 requirements.txt 원한다 특정 프로젝트 또는에서 선택한 폴더 (어린이 포함) 및 pipreqs는 지원되지 않습니다.
당신이 사용할 수있는 :
import os
import sys
from fuzzywuzzy import fuzz
import subprocess
path = "C:/Users/Username/Desktop/DjangoProjects/restAPItest"
files = os.listdir(path)
pyfiles = []
for root, dirs, files in os.walk(path):
for file in files:
if file.endswith('.py'):
pyfiles.append(os.path.join(root, file))
stopWords = ['from', 'import',',','.']
importables = []
for file in pyfiles:
with open(file) as f:
content = f.readlines()
for line in content:
if "import" in line:
for sw in stopWords:
line = ' '.join(line.split(sw))
importables.append(line.strip().split(' ')[0])
importables = set(importables)
subprocess.call(f"pip freeze > {path}/requirements.txt", shell=True)
with open(path+'/requirements.txt') as req:
modules = req.readlines()
modules = {m.split('=')[0].lower() : m for m in modules}
notList = [''.join(i.split('_')) for i in sys.builtin_module_names]+['os']
new_requirements = []
for req_module in importables:
try :
new_requirements.append(modules[req_module])
except KeyError:
for k,v in modules.items():
if len(req_module)>1 and req_module not in notList:
if fuzz.partial_ratio(req_module,k) > 90:
new_requirements.append(modules[k])
new_requirements = [i for i in set(new_requirements)]
new_requirements
with open(path+'/requirements.txt','w') as req:
req.write(''.join(new_requirements))
추신 : 퍼지 로직을 검사 할 때 몇 가지 추가 라이브러리가있을 수 있습니다.
pip freeze > requirements.txt
하면 현재 버전의 모든 파이썬 라이브러리가requirements.txt
파일 로 저장됩니다