programing

git 하위 디렉토리에서 pip을 사용하여 설치하려면 어떻게 해야 합니까?

lastmoon 2023. 7. 21. 21:51
반응형

git 하위 디렉토리에서 pip을 사용하여 설치하려면 어떻게 해야 합니까?

저는 많은 폴더가 있는 Git 저장소를 가지고 있는데, 그 중 하나는 다음과 같이 pip로 설치할 수 있는 파이썬 모듈입니다.

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'

이 기능과 관련하여 pull 요청이 있으며, 한 달 전에 지사를 개발하기 위해 합병된 것으로 보입니다.구문은 다음과 같습니다.

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.pypa.io/en/stable/cli/pip_install/ #http-support에서 제공됩니다.

setup.py 이 프로젝트 루트에 없는 프로젝트의 경우 "하위 디렉터리" 구성 요소가 사용됩니다."subdirectory" 구성 요소의 값은 프로젝트 루트에서 시작하여 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"

참고: 따옴표로 둘러싸야 합니다. 그렇지 않으면 하위 디렉터리가 작동하지 않습니다.

정답 아래에 있는 댓글하나에 이미 명시되어 있지만, 이 문제를 강조하기 위해 Linux 명령줄에서 이를 실행할 때는 반드시 탈출해야 합니다.&-앰퍼샌드가 명령행에 명령을 백그라운드에서 실행하도록 지시하므로 문자:

git+https://git.repo/some_repo.git#egg=version_subpkg\&subdirectory=repo

앰퍼샌드 전에 백슬래시가 발생합니다.탈출 동작은 Linux 디스트리뷰터에 따라 다를 수 있습니다. 저는 전문가가 아닙니다.
이를 무시하면 다음과 같은 암호화 오류가 발생할 수 있습니다.

bash: (...) command not found

언급URL : https://stackoverflow.com/questions/13566200/how-can-i-install-from-a-git-subdirectory-with-pip

반응형