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中break语句的用法
May 14 Python
Python的requests网络编程包使用教程
Jul 11 Python
Python中的默认参数实例分析
Jan 29 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
Python3的socket使用方法详解
Feb 18 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
使用Python操作MySQL的小技巧
Sep 10 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
python 实现音频叠加的示例
Oct 29 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 Python
如何用python识别滑块验证码中的缺口
Apr 01 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更新cookie内容的详细方法
2019/09/30 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
给ListBox添加双击事件示例代码
2013/12/02 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
JavaScript数组的5种迭代方法
2017/09/29 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
python操作MySQL数据库具体方法
2013/10/28 Python
使用Python抓取模板之家的CSS模板
2015/03/16 Python
Python中标准模块importlib详解
2017/04/16 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Django 开发环境配置过程详解
2019/07/18 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
Python post请求实现代码实例
2020/02/28 Python
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
opencv实现图像几何变换
2021/03/24 Python
简历中求职的个人自我评价
2013/12/03 职场文书
英语教育专业自荐信
2014/05/29 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
毕业生个人总结
2015/02/28 职场文书
运动会广播稿100字
2015/08/19 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python
使用Redis做预定库存缓存功能
2022/04/02 Redis
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js