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中类的继承代码实例
Oct 28 Python
Python实现的多线程http压力测试代码
Feb 08 Python
Python文本处理之按行处理大文件的方法
Apr 09 Python
python 判断网络连通的实现方法
Apr 22 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
Jan 14 Python
python中调试或排错的五种方法示例
Sep 12 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
python中数据库like模糊查询方式
Mar 02 Python
python 实现分组求和与分组累加求和代码
May 18 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 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
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
php对数组排序代码分享
2014/02/24 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
jquery $("#variable") 循环改变variable的值示例
2014/02/23 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
安全生产先进个人材料
2014/02/06 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
Java基础——Map集合
2022/04/01 Java/Android
Nginx安装配置详解
2022/06/25 Servers