基于nexus3配置Python仓库过程详解


Posted in Python onJune 15, 2020

搭建Python私服,我们依旧使用nexus3。

与其他私服一样的,Python私服同样有三种类型:

hosted : 本地存储,便于开发者将个人的一些包上传到私服中proxy : 提供代理其他仓库的类型,如豆瓣的pypi仓库group : 组类型,实质作用是组合多个仓库为一个对外的地址

那么就来一个一个创建。

1,创建blob存储

为其创建一个单独的存储空间。

基于nexus3配置Python仓库过程详解

2,创建hosted类型的pypiName: 定义一个名称local-pypiStorage
Blob store,我们下拉选择前面创建好的专用blob:pypi-hub。Hosted

开发环境,我们运行重复发布,因此Delpoyment policy 我们选择Allow redeploy。这个很重要!

基于nexus3配置Python仓库过程详解3,

创建一个proxy类型的pypi仓库Name: proxy-pypiProxyRemote Storage: 远程仓库地址,这里填写: http://pypi.python.org/pypi/
上边的是官方的仓库地址,还有其他几个国内常见的,罗列如下:阿里云:http://mirrors.aliyun.com/pypi/中国科技大学:https://pypi.mirrors.ustc.edu.cn/豆瓣:http://pypi.douban.com/清华大学:https://pypi.tuna.tsinghua.edu.cn/中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/Storage: pypi-hub。

其他的均是默认。

整体配置截图如下:

基于nexus3配置Python仓库过程详解

另外几个仓库同上操作,一一创建,当然也不必全部都加,根据自己实际需求添加即可。

4,创建一个group类型的pypi仓库Name:group-pypiStorage:选择专用的blob存储pypi-hub。group : 将左边可选的4个仓库,添加到右边的members下。

整体配置截图如下:

基于nexus3配置Python仓库过程详解

这些配置完成之后,就可以使用了。

5,验证使用1,指定配置

新建一台环境干净的主机,安装好Python的pip环境。可通过如下命令进行安装:

yum -y install epel-releaseyum -y install python36 python36-devel

然后通过命令行随便安装一个包,安装的时候,将代理指向我们的私服来。这个地方遇到了两个坑,这里用两个注意来进行提醒。

注意:在指定刚刚配置的私服时,需要在统一对外的地址最后加上一个simple。注意: 在第一次进行安装测试的时候,一定要指定测试包的版本,否则可能会报如下错误:

ERROR: Could not find a version that satisfies the requirement django (from versions: none)ERROR: No matching distribution found for django

这个时候指定一下包的版本,就下载成功了,而在往后的下载,就不需要指定版本了。

基于nexus3配置Python仓库过程详解

通过如下命令进行验证:

[root@master ~]# pip3 install --trusted-host 192.168.75.11 -i http://192.168.75.11:8081/repository/group-pypi/simple flask 
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting flask
 Downloading http://192.168.75.11:8081/repository/group-pypi/packages/flask/1.1.2/Flask-1.1.2-py2.py3-none-any.whl (94kB)
  100% |????????????????????????????????| 102kB 7.8MB/s 
Collecting Werkzeug>=0.15 (from flask)
 Downloading http://192.168.75.11:8081/repository/group-pypi/packages/werkzeug/1.0.1/Werkzeug-1.0.1-py2.py3-none-any.whl (298kB)
  100% |????????????????????????????????| 307kB 49.6MB/s 
Collecting Jinja2>=2.10.1 (from flask)
 Downloading http://192.168.75.11:8081/repository/group-pypi/packages/jinja2/2.11.2/Jinja2-2.11.2-py2.py3-none-any.whl (125kB)
  100% |????????????????????????????????| 133kB 69.8MB/s 
Collecting click>=5.1 (from flask)
 Downloading http://192.168.75.11:8081/repository/group-pypi/packages/click/7.1.2/click-7.1.2-py2.py3-none-any.whl (82kB)
  100% |????????????????????????????????| 92kB 6.6MB/s 
Collecting itsdangerous>=0.24 (from flask)
 Downloading http://192.168.75.11:8081/repository/group-pypi/packages/itsdangerous/1.1.0/itsdangerous-1.1.0-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from Jinja2>=2.10.1->flask)
 Downloading http://192.168.75.11:8081/repository/group-pypi/packages/markupsafe/1.1.1/MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl
Installing collected packages: Werkzeug, MarkupSafe, Jinja2, click, itsdangerous, flask
Successfully installed Jinja2-2.11.2 MarkupSafe-1.1.1 Werkzeug-1.0.1 click-7.1.2 flask-1.1.2 itsdangerous-1.1.0

这个时候去私服的库里看下,已经可以看到刚刚安装的几个包了。

基于nexus3配置Python仓库过程详解

2,全局配置

通过添加全局配置,就不需要每次执行编译的时候指定私服地址了:

mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
timeout = 60
trusted-host = 192.168.75.11
index-url = http://192.168.75.11:8081/repository/group-pypi/simple
EOF

保存之后,本机的代理就走本地的私服了。

基于nexus3配置Python仓库过程详解
基于nexus3配置Python仓库过程详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python装饰器知识点补充
May 28 Python
无法使用pip命令安装python第三方库的原因及解决方法
Jun 12 Python
对Python 除法负数取商的取整方式详解
Dec 12 Python
python 多个参数不为空校验方法
Feb 14 Python
python os模块简单应用示例
May 23 Python
详解python中的数据类型和控制流
Aug 08 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 Python
python中property属性的介绍及其应用详解
Aug 29 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
Sep 22 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
Mar 08 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
进行数据处理的6个 Python 代码块分享
Apr 06 Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 #Python
在keras里面实现计算f1-score的代码
Jun 15 #Python
Python流程控制语句的深入讲解
Jun 15 #Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 #Python
python语言是免费还是收费的?
Jun 15 #Python
DataFrame.groupby()所见的各种用法详解
Jun 14 #Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 #Python
You might like
实用函数10
2007/11/08 PHP
坏狼php学习 计数器实例代码
2008/06/15 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
Laravel5中contracts详解
2015/03/02 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
xml和web特殊字符
2009/04/28 Javascript
Javascript UrlDecode函数代码
2010/01/09 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
如何在存储过程中使用Loop
2016/01/05 面试题
计算机网络专业推荐信
2013/11/24 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
机关工会工作总结2015
2015/05/26 职场文书
歌舞青春观后感
2015/06/10 职场文书
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS