首页 > 编程语言 >Python 部署私有 pip 库

Python 部署私有 pip 库

时间:2023-02-25 16:02:22浏览次数:57  
标签:Python 0.2 pypi auth server 私有 pip 10.206

Python 部署私有 pip 库

image

本教程使用的是 pypiserver 这个 Python 包,其文档见:https://pypi.org/project/pypiserver/,Github 地址:https://github.com/pypiserver/pypiserver

1 - 环境介绍

操作系统:cent OS 7.6

image

Python 版本:3.7.3

image


2 - 准备工作

2.1 创建相关目录

# 创建服务器目录
mkdir -p /usr/local/pypi-server

cd /usr/local/pypi-server

# 创建后续管理包的目录
mkdir packages

# 创建认证目录
mkdir auth

image

后续相关的操作,非特别说明,均在 /usr/local/pypi-server 目录下


2.2 认证授权

这一步主要是为了保护你的 pip 库不能随意被上传、下载;pypiserver 采用的是 Apache-Like Authentication (htpasswd)

# 安装生成授权工具的命令
yum -y install httpd-tools

# 生成授权文件, 会 prompt 密码输入,重复两遍一样的 ChaosMoor
htpasswd -sc .chaos-moor-auth ChaosMoor

# 移动文件到 auth 目录下
mv ./.chaos-moor-auth auth/

image


3 - 运行服务

3.1 运行服务

我这里是用 Python 虚拟环境运行的

# 创建虚拟环境并激活
python -m venv runvenv
source runvenv/bin/activate

# 安装依赖模块
pip install pypiserver
pip install passlib

# 运行
pypi-server run \
	-i 10.206.0.2 \
	-p 12200 \
	-a update,download \
	-P /usr/local/pypi-server/auth/.chaos-moor-auth \
	-o \
	--fallback-url https://mirrors.aliyun.com/pypi/simple/ \
	/usr/local/pypi-server/packages &
    
# 可以通过 curl 命令查看是否启动成功
curl http://10.206.0.2:12200

image

注意:如果提示没有 pypi-server 命令,把 pypi-server run 换成 python -m pypiserver run


3.2 pypi-server 参数说明

参数 说明 示例
-i host,默认 0.0.0.0 -i 10.206.0.2
-p 端口,默认 8080 -p 12200
-a 对那些操作进行密码验证,update|download|list,逗号分隔 -a update,download
-P 指定认证秘钥文件 -P auth.txt
--fallback-url 当本 pip 库没有时,到这个源去找 --fallback-url https://mirrors.aliyun.com/pypi/simple/
-o 上传时允许覆盖已经存在的包 -o

还有一些其他的参数,可以参照官方文档


3.3 客户端的使用

# 直接进行安装就行
pip install --trusted-host 10.206.0.2 --index-url http://10.206.0.2:12200/simple/ package-name

# 也可以对 pip 进行全局设定
pip config set install.trusted-host 10.206.0.2
pip config set global.extra-index-url http://10.206.0.2:12200/simple/

# 设定后直接用 pip 安装
pip install package-name

注意:如果在没有 https 的远程 url 上安装了 pypiserver,安装时将收到来自 pip 的“不受信任”警告,这时候需要 --trusted-host 选项。 也可以进行相关配置


3.4 Nginx 反向代理

我在 Nginx 进行了 SSL,所以我这里用 Nginx 做了一层反向代理,

server {
    location /pypi/ {
        proxy_set_header  X-Forwarded-Host $host:$server_port/pypi;
        proxy_set_header  X-Forwarded-Proto $scheme;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_pass        http://10.206.0.2:12200/;
    }
}

注意:path 只能是 pypi


3.5 包的上传

如果我们不想手动的把包拖入到 package 文件夹下,可以通过以下进项上传

# 安装 twine 工具
pip3 install twine

twine upload dist/zither-2.1.0.tar.gz --repository-url http://10.206.0.2:12200

标签:Python,0.2,pypi,auth,server,私有,pip,10.206
From: https://www.cnblogs.com/chaosmoor/p/17154595.html

相关文章

  • Python学习笔记(五)if分支语句
    一、if语法示例:1money=int(input('请输入余额:'))2ifmoney>=5:3print('买得起!')45ifTrue:6print('条件成立时要执行的代码1')7print('条......
  • python的驻留机制
    在某些情况下,python会使用现有的不可变对象,而不是总是创建一个新对象。驻留的对象在内部使用类似字典的结构(驻留池)进行驻留,节省内存。原理:系统维护interned字典类型记录已......
  • fatal error: Python.h: No such file or directory
    fatalerror:Python.h:Nosuchfileordirectory过程:通过pipinstall某个库,发生了一下错误,找不到Python.h的头文件解决方案搜索StackoverFlow,我的环境是CentOS,所以执......
  • 强行在CentOS上kill python进程 unix:///tmp/supervisor.sock
    问题:unix:///tmp/supervisor.sock解决方案:echo_supervisord_conf>/etc/supervisord.confsudosupervisord-c/etc/supervisord.confsudosupervisorctlstatus​​https:......
  • 解决Python Tornado的某个页面不需要进行xsrf的检查
    错误信息:‘_xsrf’argumentmissingfrompost我们总是对全站开启xsrf的功能,但是有时候想对单个页面不希望启用该功能的验证,那么我们可以进行重写​​check_xsrf_cookie()......
  • Python3的AES加密和解密
    此加密和解密的秘钥的长度必须是16位、24位或者32位importbase64importosfromCrypto.CipherimportAES#AESkeymustbeeither16,24,or32byteslongaes_key="1......
  • 大海的python汇总
    title:python_汇总author:大海(刘光银)top:2categories:-pythontags:-readingPython基础注释输出语句变量标识符数据类型用户输入类型转换运算符注......
  • python2代码转python3
    安装python337的参考:D:\Python3.5\Tools\scripts找到2to3.py文件执行命令转换单个文件或者目录D:\dev\python37\Tools\scripts>python2to3.py-wD:\dev\python37\To......
  • Linux下Python搭建
    VMware14下载:https://blog.csdn.net/qq_31362105/article/details/80706096ctrol+d#退出python执行界面rpm-qa|grepchupinxiu#列出包含厨品秀字段的软件信息“ONBO......
  • MacOS下载钉钉直播回放视频的Python最新解决方案
    tags:PythonMacOSTips写在前面之前写过一篇关于用Charles抓包下载钉钉直播回放视频的方法,那会还是可以直接通过​​FFmpeg​​​下载​​m3u8​​​链接并且直接合并的......