많은 폴더가있는 git 저장소가 있는데 그중 하나는 다음과 같이 pip로 설치할 수있는 python 모듈입니다.
repo.git/
repo.git/folder1/
repo.git/folder2/
repo.git/mymodule/
repo.git/mymodule/__init__.py
repo.git/mymodule/setup.py
repo.git/mymodule/...
지금 설치하려면 다음을 수행해야합니다.
git clone http://server/repo.git
cd repo
pip install mymodule
cd ..
rm -rf repo
명시 적으로 복제하지 않고 pip로 모듈을 직접 설치할 수 있습니까?
나는 시도했다 :
pip install git+https://server/repo.git/mymodule/
pip install git+https://server/repo.git:mymodule/
그러나 나는 얻는다 :
IOError: [Errno 2] No such file or directory: '/tmp/pip-88tlLm-build/setup.py'
답변
이 기능에 대한 풀 리퀘스트 가 있으며 , 한 달 전에 브랜치를 개발하기 위해 병합 된 것 같습니다. 구문은 다음과 같습니다 .
pip install -e git+https://git.repo/some_repo.git#egg=version_subpkg&subdirectory=repo # install a python package from a repo subdirectory
마스터에 병합되어 배포 될 때까지 잠시 기다려야 할 것입니다.
업데이트 : 이제 https://pip.readthedocs.io/en/stable/reference/pip_install/#vcs-support 에서 다음과 같이 사용할 수 있으며 문서화 됩니다.
setup.py가 프로젝트의 루트에없는 프로젝트의 경우 “하위 디렉토리”구성 요소가 사용됩니다. “하위 디렉터리”구성 요소의 값은 프로젝트 루트에서 setup.py가있는 경로 여야합니다.
따라서 저장소 레이아웃이 다음과 같은 경우 :
- pkg_dir/ - setup.py # setup.py for package ``pkg`` - some_module.py - other_dir/ - some_file - some_other_file
당신은 사용할 필요가 있습니다
pip install -e vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir
참고 : Windows에서는 URL을 큰 따옴표로 묶어야합니다. 그렇지 않으면 ” ‘하위 디렉토리’가 내부 또는 외부 명령으로 인식되지 않습니다.”라는 오류 메시지가 표시됩니다. 예를 들어 다음을 사용하십시오.
pip install -e "vcs+protocol://repo_url#egg=pkg&subdirectory=pkg_dir"
답변
정답 아래 주석 중 하나에 이미 언급되어 있지만이 문제를 강조하기 위해 Linux 명령 줄에서 실행할 때 앰퍼샌드가 명령 줄에 백그라운드에서 명령을 실행하도록 지시하므로-문자를 이스케이프 해야합니다&
.
git+https://git.repo/some_repo.git#egg=version_subpkg\&subdirectory=repo
앰퍼샌드 앞에 백 슬래시가 있습니다. 이스케이프 동작은 Linux 배포판에 따라 달라질 수 있습니다. 나는 전문가가 아닙니다.
이것을 무시하면 다음과 같은 암호 오류가 발생할 수 있습니다.
bash: (...) command not found