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:\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

 


    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM