基于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 05 Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 Python
python中format()函数的简单使用教程
Mar 14 Python
python调用百度语音识别api
Aug 30 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
python 实现屏幕录制示例
Dec 23 Python
Python多线程threading join和守护线程setDeamon原理详解
Mar 18 Python
python如何建立全零数组
Jul 19 Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 22 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
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
python实现在sqlite动态创建表的方法
2015/05/08 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
python requests指定出口ip的例子
2019/07/25 Python
关于django 1.10 CSRF验证失败的解决方法
2019/08/31 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
Python continue语句实例用法
2020/02/06 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
征兵宣传标语
2014/06/20 职场文书
高一军训的心得体会
2014/09/01 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL