繁体   English   中英

Python setuptools:如何在 setup.py 中添加私有存储库 (gitlab)?

[英]Python setuptools: How can I add a private repository (gitlab) in my setup.py?

I have 2 package uploaded which are in my gitlab repository, if I want to install them in my system using pip, it's easy because gitlab helps you:

https://docs.gitlab.com/ee/user/packages/pypi_repository/index.html

pip install <package-name> --extra-index-url https://<username>:<your_personal_token>@gitlab.com/api/v4/projects/<project ID>/packages/pypi/simple

这两个 package 的名称:

  • 核心_1
  • 服务_1

我想要的是创建其他 package 下载这两个私有 package 并且我需要在 setup.py 中进行配置:

这是我的 setup.py

from setuptools import setup, find_packages

setup(
name='my_project',
version='0.1.0',
packages=find_packages(),
package_data = {
    'config':['*.yaml']
    },
include_package_data=True,
install_requires=[
    'click', 
    'colorama',
    'core_1 --extra-index-url https://joelbarrantespalacios:<personal_token>@gitlab.com/api/v4/projects/<project_ID>/packages/pypi/simple',
    'service_1 --extra-index-url https://joelbarrantespalacios:<personal_token>@gitlab.com/api/v4/projects/<project_ID>/packages/pypi/simple'
],
entry_points={
    'console_scripts': [
        'darit = core_project.cli:start',
    ],
},

)

当然, <personal_token> 和 <project_ID>需要添加,但我不会给你,因为它是私有的 package。

joelbarrantespalacios : 这是我的用户名

这是我在 setuptools 的文档中找到的,它显示了如何创建不在 PyPI 中的依赖项,但我不清楚

https://setuptools.pypa.io/en/latest/userguide/dependency_management.html

我真的需要你们帮助,给我一些希望。

您应该将索引/身份验证信息添加到pip.cfg文件或~/.pypirc文件中。

使用~/.pypirc文件:

[gitlab]
repository = https://gitlab.example.com/api/v4/projects/<project_id>/packages/pypi
username = <username>
password = <token>

其中<token>是带有 API scope 的 API 令牌。 或者,在安装包时向pip提供索引/身份验证信息。

您的setup.py依赖项应该简单地声明 package 的名称。 例如

# ...
install_requires=[
    'core_1',
    'service_1',
#...

pip将自动从pip.cfg.pypirc文件(或pip CLI 选项)中配置的注册表中解决它。

当您的setup.py上传到注册表并由其用户下载时,它会与您的 package 捆绑在一起,因此它显然不应该包含您的密码/令牌等敏感信息!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM