=============================
关于 python packaging 和 package manager 以及 虚拟环境 以及 package index server
=============================
python 社区终于和打包相关的事情通盘考虑了,
https://packaging.python.org/guides/tool-recommendations/

=========================  
pip 访问非官方pypi源, 以及代理的设置
=========================
在Windows下安装某些Python的C extension的wheel包时, 有可能报缺C++ compiler, 需要下载 Microsoft Visual C++ Compiler for Python 2.7
下载地址: http://aka.ms/vcpython27

pypi index server 的列表
http://www.pypi-mirrors.org

pip在线安装eventlet, 选用pypi.python.org源
pip install eventlet

pip在线安装eventlet, 选用douban的index server
pip install -i http://pypi.douban.com/simple  eventlet
 
pip在线安装eventlet, 启用proxy
pip install --proxy=http://10.224.6.108:8080  eventlet
 
pip在线安装requirements.txt内的所有包
pip install -r requirements.txt

如果在命令行指定index server或proxy不起作用, 可以试试在 pip.conf 配置文件中设定.
如果在pip.conf设置proxy还不起作用, 试试在设置OS环境变量.

在pip配置文件设置, 方法是: 随便新建一个 pip.conf 文件, 然后设定一个OS级别的变量 PIP_CONFIG_FILE 指向这个文件, pip.conf内容为:

[global]
timeout = 120 # v2ex 的 index server
index-url = http://pypi.v2ex.com/simple
trusted-host = pypi.v2ex.com # douban 的 index server
#index-url = http://pypi.douban.com/simple
#trusted-host = pypi.douban.com # 下面是两个基于文件系统的index url, 由pip2pi生成索引
#index_url = file:///home/myusername/.pip2pi/simple/
#index_url = file:///C:/pip2pi/simple/ # 下面是 proxy的设置, 到底是http还是https, 需要多试验
proxy = http://10.224.6.108:8080
#proxy = https://10.224.6.108:8080
#proxy = [[domain\]username:password@]myproxy:myproxyport #在OS 设置proxy环境变量的命令,
#export http_proxy=[[domain\]username:password@]myproxy:myproxyport
#export https_proxy=[[domain\]username:password@]myproxy:myproxyport

=========================  
搭建自己的pypi服务器,
=========================
****搭建私有的pypi服务器, 应该是服务器离线安装package最简单的方法了 ***

下载并安装 pip2pi, 安装好了后, 共有4个命令文件, 分别是pip2tgz和dir2pi和pip2whl和pip2pi, 我们用pip2tgz和dir2pi就行了.  
pip2tgz,  负责下载 packages, 它会自动读取 $PIP_CONFIG_FILE 配置文件, 太赞了!
dir2pi, 为下载的 packages 建立兼容pypi.python.org的index.

可参考: http://www.diyoms.com/python/1058.html, 步骤如下:
1. 创建包目录:
    D:\software\python\packages
    
2. 运行命令:
   pip2tgz D:\software\python\packages <package name>
   这里的package name可以是包名字, 比如sqlalchemy, 也可以是带版本的包名, 比如sqlalchemy==0.7.8. 如果包很多的话, 可以用-r requirement.txt来一次下载多个包, 就跟pip install -r requirement.txt一样.
   
3. 运行命令:
   dir2pi -n D:\software\python\packages
   这样, D:\software\python\packages 就多了一个simple目录, 里面包含所有的包索引
   
4. [可选步骤]用IIS或Apache或nginx开启pypi Web访问服务. 之所以是可选步骤, 是因为pip 可以选用基于file的index url.
   我使用 mongoose 作为web server, 下载地址https://github.com/cesanta/mongoose.

rem # on pip server, 假设IP: 192.168.0.100
pip2tgz D:\software\python\packages flask-login
rem # on pip server
dir2pi -n D:\software\python\packages
rem # download mongoose-free-6.1.exe and put it into folder D:\software\python\packages
D:\software\python\packages> mongoose-free-6.1.exe rem # python application server, should add trusted-host option
pip install -i http://192.168.0.100:8080/simple  --trusted-host 192.168.0.100 flask-login

pip高级使用技巧以及搭建自己的pypi服务器的更多相关文章

  1. Python pip高级用法

    1.pip 高级用法为了便于用户安装和管理第三方库和软件,越来越多的编程语言拥有自己的包管理工 具,如 nodejs 的 npm, ruby 的 gem. Python 也不例外,现在 Python ...

  2. 如何使用GOOGLE高级搜索技巧

    如何使用GOOGLE高级搜索技巧 一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发 ...

  3. 非常实用的10个PHP高级应用技巧

    PHP 独特的语法混合了 C.Java.Perl 以及 PHP 自创新的语法.它可以比 CGI或者Perl更快速的执行动态网页.用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML ...

  4. SQL高级查询技巧

    SQL高级查询技巧   1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重 ...

  5. 【Python】 sort、sorted高级排序技巧

    文章转载自:脚本之家 这篇文章主要介绍了python sort.sorted高级排序技巧,本文讲解了基础排序.升序和降序.排序的稳定性和复杂排序.cmp函数排序法等内容,需要的朋友可以参考下 Pyth ...

  6. [转]基于Protel DXP软件的PCB高级编辑技巧大全

    来源:基于Protel DXP软件的PCB高级编辑技巧大全 一.放置坐标指示 放置坐标指示可以显示出PCB板上任何一点的坐标位置. 启用放置坐标的方法如下:从主菜单中执行命令 Place/Coordi ...

  7. [libgdx游戏开发教程]使用Libgdx进行游戏开发(11)-高级编程技巧 Box2d和Shader

    高级编程技巧只是相对的,其实主要是讲物理模拟和着色器程序的使用. 本章主要讲解利用Box2D并用它来实现萝卜雨,然后是使用单色着色器shader让画面呈现单色状态:http://files.cnblo ...

  8. 【转载】 python sort、sorted高级排序技巧

    这篇文章主要介绍了python sort.sorted高级排序技巧,本文讲解了基础排序.升序和降序.排序的稳定性和复杂排序.cmp函数排序法等内容,需要的朋友可以参考下 Python list内置so ...

  9. Python的几个高级编程技巧

    Python有一些技巧对你来说是新知识,但是还有一些技巧会让你的代码效率大幅提升. 本文总结了一下自己用到的一些Python高级编程技巧,希望对大家有帮助. 列表生成器 a=[1,2,3] [x*x ...

随机推荐

  1. Linq Like

    Like的操作,有点像in,但是,方向变了.什么意思呢.就是你给定一个字符串,去寻找数据中某个字段包含这个字符串.就是给定的字符串是某字段的子集.Sql Script是这么写的. Selec * fr ...

  2. codevs3305 水果姐逛水果街Ⅱ

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  3. ubuntu下gedit中文乱码

    gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'GB2312', 'GBK', ...

  4. IDEA:Idea注册

    注册码查找: http://idea.lanyus.com ,然后点击 OK

  5. jpa注解

    http://www.oracle.com/technetwork/cn/middleware/ias/toplink-jpa-annotations-100895-zhs.html#ManyToOn ...

  6. Unity赛车游戏之移动

    这个赛车游戏真是让我费劲脑汁啊.尤其是写这种系统化的东西. 目前漂移还没找到更好的算法,不过基本的移动还是可以做到的. 别看就光是个移动,其实也是很费事的. Unity给了个对于赛车系统很好的碰撞组件 ...

  7. chmod权限设置

    一.其语法格式为:chmod [who] [opt] [mode] 文件/目录名 1.其中who表示对象,是以下字母中的一个或组合: u:表示文件所有者 g:表示同组用户 o:表示其它用户 a:表示所 ...

  8. BZOJ1933: [Shoi2007]Bookcase 书柜的尺寸

    传送门 很容易看出来这是一道DP题,那么怎么设置状态就成了这道题的关键.本题有点特殊的地方是有两个维度的状态,而每个维度又有三个部分的参数,如果全部设置出来的话肯定会MLE.首先对书的厚度状态简化. ...

  9. Altium Designer 15 --- Make 3D PCB Library with Rhinoceros

    in the mode of "渲染模式" in the mode of "着色模式" Principle 1 : In the mode of "着 ...

  10. angular state和stateParams

    angular ui-route通过路由传递参数 发送ctrl var model = { data: positionid }; $state.go('app.position.publish', ...