Пароль приложения Bitbucket отклонен для установки с использованием «pip», но работает для «pipenv» - PullRequest
2 голосов
/ 07 апреля 2019

Я должен предоставить доступ к частному репозиторию BitBucket для пакетов Python нашей команды, которые можно установить из Google App Engine.

Я создал пароль приложения только с одним разрешением «Чтение из репозитория» и смог использоватьэто клонировало мой репозиторий, и у меня не было проблем с установкой моего пакета с использованием pipenv, но pip получает HTTP 403 от BitBucket:

Collecting my-package-0.1.0.beta1 from https://my_user:****@bitbucket.org/my-team/my_repo.git@v0.1#egg=my-package-0.1.0.beta1 (from -r requirements.txt (line 35))
  HTTP error 403 while getting https://my_user:****@bitbucket.org/my-team/my_repo.git@v0.1#egg=my-package-0.1.0.beta1
  Could not install requirement my-package-0.1.0.beta1 from https://my_user:****@bitbucket.org/my-team/my_repo.git@v0.1#egg=my-package-0.1.0.beta1 (from -r requirements.txt (line 35)) because of error 403 Client Error: Forbidden for url: https://bitbucket.org/my-team/my_repo.git@v0.1

В моей requirements.txt 35-й строке есть https://${BIT_USER}:${BIT_PASS}@bitbucket.org/my-team/my_repo.git@v0.1#egg=my-package-0.1.0.beta1

Клонирование с помощью командной строки: git clone "https://${BIT_USER}:${BIT_PASS}@bitbucket.org/my-team/my_repo.git" работает как талисман и pipenv устанавливает без каких-либо проблем с этой строкой: my-package = {git = "https://my_user:app_password@bitbucket.org/my-team/my_repo.git",ref = "v0.1"} в моем Pipfile.

Обратите внимание, что при установке с использованиемpipenv, после запуска pip freeze я вижу, что мой пакет указан как my-package==0.1.0b1, даже его версия в setup.py равна 0.1.0.beta1

Я что-то пропустил?

1 Ответ

0 голосов
/ 07 апреля 2019

Поскольку pip поддерживает установку из нескольких VCS , вам необходимо добавить префикс, идентифицирующий конкретную VCS, при установке из URL репозитория.Примеры Git из раздела Git :

pip в настоящее время поддерживает клонирование по git, git+http, git+https, git+ssh, git+git и git+file:

Вот поддерживаемые формы:

[-e] git://git.example.com/MyProject#egg=MyProject
[-e] git+http://git.example.com/MyProject#egg=MyProject
[-e] git+https://git.example.com/MyProject#egg=MyProject
[-e] git+ssh://git.example.com/MyProject#egg=MyProject
[-e] git+git://git.example.com/MyProject#egg=MyProject
[-e] git+file:///home/user/projects/MyProject#egg=MyProject
-e git+git@git.example.com:MyProject#egg=MyProject
...