pypi本地源的搭建

 

原文链接:http://www.lnmpy.com/pypi-mirror/

 

介于Python的跨平台性,所以这里就不描述我本地的环境了

首先安装pypimirror

 
  
  1. pip install z3c.pypimirror

安装的过程中会会出现BeautifulSoup版本不匹配的报错

 
  
  1. Downloading/unpacking BeautifulSoup<=3.0.9999 (from z3c.pypimirror)
  2. Could not find a version that satisfies the requirement BeautifulSoup<=3.0.9999 (from z3c.pypimirror) (from versions: 3.2.0, 3.2.1)
  3. Cleaning up...
  4. No distributions matching the version for BeautifulSoup<=3.0.9999 (from z3c.pypimirror)
  5. Storing debug log for failure in /home/topgear/.pip/pip.log

/usr/local/lib/python2.7/dist-packages/z3c.pypimirror-1.0.16-py2.7.egg/EGG-INFO/requires.txt文件修改一下即可. (这里我是ubuntu的,具体的发行版的配置可能会不一样)

其中有一行是: BeautifulSoup<=3.0.9999, 将版本号去掉,即改成:BeautifulSoup. 改完之后再重新执行上面的安装命令即可.

配置pypimirror.cfg文件,保存路径无所谓

 
  
  1. [DEFAULT]
  2. # 镜像文件的本地存放路径
  3. mirror_file_path = /opt/pypi/
  4.  
  5. # 远程镜像的url
  6. base_url = http://0.0.0.0/pypi
  7.  
  8. # 日志文件
  9. log_filename = /var/log/pypi-mirror.log
  10.  
  11. # 防止重复运行的锁文件
  12. lock_file_name = /tmp/pypi-mirror.lock
  13.  
  14. # days to fetch in past on update
  15. fetch_since_days = 1
  16.  
  17. # 需要进行镜像拷贝的文件类型,不在列表中的则不进行拷贝
  18. filename_matches =
  19. *.zip
  20. *.tgz
  21. *.egg
  22. *.tar.gz
  23. *.tar.bz2
  24.  
  25. # 需要进行镜像拷贝的文件名称,不在列表中的则不进行拷贝
  26. # 默认拷贝全部,上面已经删选了类型
  27. package_matches =
  28. *
  29.  
  30. # 删除本地有而服务器上没有的包
  31. # 默认是True,会进行删除的,此处我调整为False
  32. cleanup = False
  33.  
  34. # 创建索引文件
  35. create_indexes = True
  36.  
  37. # 显示相信信息
  38. verbose = True

执行pypimirror -h 可以看到pypimirror的帮助信息

-I: 初始化镜像

-U: 更新镜像(当已经初始化过了,只需要进行同步的更新)

-i: 为本地文件创建索引

-c: 同时输出到console中

-v: 显示详细信息

 
  
  1. pypimirror -c -v -I pypimirror.cfg # 第一次需要初始化
  2. pypimirror -c -v -U pypimirror.cfg # 如果已经存在本地镜像了则可以进行更新
 
  
  1. pypimirror -c -v -i pypimirror.cfg

其实就是简单的执行一个软链接而已

 
  
  1. ln -sf /opt/pypi /var/www/pypi

使用镜像源很简单,用-i指定就行了:

 
  
  1. easy_install -i http://127.0.0.1/pypi/ django
  2. pip install -i http://127.0.0.1/pypi/ django

当然实际中你会发现有些源即使你指定了第三方的源(本地源), 它竟然还是从官方的源去下载了, so(= ̄ω ̄=), 改下pip或者easy_install的源码,替换掉代码中hardcode的官方源吧.

  1. 搭建本地pypi服务器
  2. Setting up a PyPI mirror

 

你可能感兴趣的:(系统管理)