zoukankan      html  css  js  c++  java
  • pip高级使用技巧以及搭建自己的pypi服务器


    =============================
    关于 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:softwarepythonpackages
        
    2. 运行命令:
       pip2tgz D:softwarepythonpackages <package name>
       这里的package name可以是包名字, 比如sqlalchemy, 也可以是带版本的包名, 比如sqlalchemy==0.7.8. 如果包很多的话, 可以用-r requirement.txt来一次下载多个包, 就跟pip install -r requirement.txt一样.
       
    3. 运行命令:
       dir2pi -n D:softwarepythonpackages
       这样, D:softwarepythonpackages 就多了一个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:softwarepythonpackages flask-login
    rem # on pip server  
     dir2pi -n D:softwarepythonpackages
    rem # download mongoose-free-6.1.exe and put it into folder D:softwarepythonpackages
     D:softwarepythonpackages> 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


        

  • 相关阅读:
    C#实现控制Windows系统关机、重启和注销的方法:
    Sql中将datetime转换成字符串的方法(CONVERT())
    Winform button按钮设置快捷键
    Winform API "user32.dll"中的函数
    C# 一些知识点总结(二)_路径类,编码类,文件类...
    Winform 窗体单例
    防止DataGridview闪烁
    Winform DataGridView控件添加行号
    SQL Server 数据库的维护(三)__事务(transaction)和锁
    SQL Server 常用函数介绍
  • 原文地址:https://www.cnblogs.com/harrychinese/p/pip_advanced_and_pypi_mirror.html
Copyright © 2011-2022 走看看