Python环境下搭建属于自己的pip源的教程


Posted in Python onMay 05, 2016

一、安装pip2pi工具:

pip install pip2pi

或:

git clone https://github.com/wolever/pip2pi
cd pip2pi
python setup.py install

二、创建存放软件包的仓库:

mkdir /opt/python/soft/pypi.3water.com

三、下载软件包并建立索引:

单独下载某个软件包

pip2tgz /opt/python/soft/pypi.3water.com/ routes==1.12.3

批量下载软件包:

pip2tgz /opt/python/soft/pypi.3water.com/ -r list/requirements.txt

建立索引:

dir2pi /opt/python/soft/pypi.3water.com/

更新索引:

pip2acmeco uliweb=0.2.6 
pip2acmeco -r list/requirements.txt

四、结合nginx配置web端:

Nginx服务器添加虚拟主机配置:

server {
  listen 80;
  server_name pypi.3water.com;
  root /opt/python/soft/pypi.3water.com;
  location /{
   autoindex on;
   autoindex_exact_size off; #显示文件的大小
   autoindex_localtime on; #显示文件时间
   #limit_rate_after 5m; #5分钟后下载速度限制为200k
   limit_rate 200k;
  }
access_log logs/pypi.3water.com.access.log main;
}

至此已经配置完了自己的私有pypi了 需要什么软件包的时候,自己拿到放到自己的pypi里面就可以了;

同理也可以把自己的项目打包放进去。

五、如何更好的使用pypi源:

打个比方安装下uliweb吧

pip install --index-url=http://pypi.3water.com/simple/ uliweb

或者

pip install -i uliweb

这样是不是很麻烦,想不想默认就走自己的pypi源? 好吧,这里已经给你想好了一个方法啦:

在linux下创建~/.pip/pip.conf文件,文件内容如下

[global]
index-url = http://pypi.3water.com/simple

如果是windows环境,创建:%HOMEPATH%\pip\pip.ini

内容和上面linux下一样.

同时推荐几个比较好的国内pypi源:

http://pypi.douban.com 豆瓣

http://pypi.hustunique.com 华中理工大学

http://pypi.sdutlinux.org 山东理工大学

http://pypi.mirrors.ustc.edu.cn 中国科学技术大学

PS:修改easy_install和pip使用的源有两种方式
(以Linux上从镜像源e.pypi.python.org下载安装requests为例):

命令方式:针对一次使用,临时修改

easy_install

easy_install -i http://e.pypi.python.org/simple requests

pip

pip install requests -i http://e.pypi.python.org/simple

注:1. 源路径要包含/simple部分;2. 使用pip时-i参数应放在install xxx的后面

修改(若没有,则创建)easy_install/pip的配置文件

easy_install:在~/.pydistutils.cfg配置文件中写入如下内容:

[easy_install]
index_url = http://e.pypi.python.org/simple

pip:在~/.pip/pip.conf配置文件中写入:

[global]
index-url = http://e.pypi.python.org/simple
Python 相关文章推荐
PYTHON正则表达式 re模块使用说明
May 19 Python
Python抓取京东图书评论数据
Aug 31 Python
在GitHub Pages上使用Pelican搭建博客的教程
Apr 25 Python
Python中转换角度为弧度的radians()方法
May 18 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
Python中函数eval和ast.literal_eval的区别详解
Aug 10 Python
python画一个玫瑰和一个爱心
Aug 18 Python
Python如何调用外部系统命令
Aug 07 Python
Python 寻找局部最高点的实现
Dec 05 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
python 监控logcat关键字功能
Sep 04 Python
python使用shell脚本创建kafka连接器
Apr 29 Python
使用Python判断质数(素数)的简单方法讲解
May 05 #Python
Python编程中归并排序算法的实现步骤详解
May 04 #Python
Python手机号码归属地查询代码
May 04 #Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 #Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 #Python
Python中使用插入排序算法的简单分析与代码示例
May 04 #Python
Python中函数参数设置及使用的学习笔记
May 03 #Python
You might like
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
Jquery练习之表单验证实现代码
2010/12/14 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
Node.js实现文件上传
2016/07/05 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
2019/11/05 NodeJs
详解Python的Django框架中的模版相关知识
2015/07/15 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
wxpython实现图书管理系统
2018/03/12 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
Python中qutip用法示例详解
2020/10/02 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
一名老师的自我评价
2014/02/07 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
师范生求职信
2014/06/14 职场文书
学习张林森心得体会
2014/09/10 职场文书
介绍信格式
2015/01/30 职场文书
教师年度考核个人总结
2015/02/12 职场文书
大学生村官个人总结
2015/02/15 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js