Windows 环境下基于 nginx 的本地 PyPI 源的搭建:

1.登录 nginx 官网,下载安装包
下载稳定版,并解压缩。

2.启动 nginx 服务
以管理员身份启动 nginx.exe。 
访问 localhost,出现如下页面即证明 nginx 安装并启动成功。
3.安装 pip2pi 工具
pip install pip2pi
4.创建软件包仓库目录
假设创建软件包仓库目录为 C:\Python27\soft\pypi.zsz.net
5.下载软件包并建立索引
下载软件包并建立索引有两种方式,分别如下。
a.使用 pip2tgz 及 dir2pi 命令分开执行
①.下载软件包
注意:通过 pip2tgz 命令可以下载对应的软件包,应下载至软件目录仓库下。
(1).软件包单个下载
假设下载 celery(3.1.23)版本,则命令如下
# pip2tgz C:\Python27\soft\pypi.zsz.net celery==3.1.23
(2).软件包批量下载
按如下格式编辑软件包列表 requirements.txt
Flask==0.11.1
Flask-Mail==0.9.1
随后,使用如下命令进行批量下载。

# pip2tgz C:\Python27\soft\pypi.zsz.net -r requirements.txt

②.建立索引
注意:通过 dir2pi 命令将目录中的软件包创建索引。
为软件包仓库目录 C:\Python27\soft\pypi.zsz.net 创建索引,命令如下。

# dir2pi --normalize-package-names C:\Python27\soft\pypi.zsz.net

注意:需加入 --normalize-package-names 修饰,这样能格式化命名不符合规范的软件包,使其可以被正常识别。

b.使用 pip2pi 命令统一执行

注意:pip2pi 将会下载所需的软件包,随后为存在的软件包创建索引。

(1).软件包单个下载假设下载 celery(3.1.23)版本,则命令如下
# pip2pi --also-get-source --normalize-package-names C:\Python27\soft\pypi.zsz.net celery==3.1.23

注意:需加入 --also-get-source 修饰,除了下载 wheel、eggs 等格式的软件包外,还讲下载软件包的源文件,从而确保不同平台上的使用
注意:需加入 --normalize-package-names 修饰,这样能格式化命名不符合规范的软件包,使其可以被正常识别。

(2).软件包批量下载

按如下格式编辑软件包列表 requirements.txt

Flask==0.11.1

Flask-Mail==0.9.1

随后,使用如下命令进行批量下载。

# pip2pi --also-get-source --normalize-package-names C:\Python27\soft\pypi.zsz.net -r requirements.txt

注意:需加入 --also-get-source 修饰,除了下载 wheel、eggs 等格式的软件包外,还讲下载软件包的源文件,从而确保不同平台上的使用
注意:需加入 --normalize-package-names 修饰,这样能格式化命名不符合规范的软件包,使其可以被正常识别。

6.配置 nginx 服务

在 nginx 的 conf 目录下,修改 nginx.conf。
例如:为了在本机上搭建 PyPI 源,且网站根路径为 C:\Python27\soft\pypi.zsz.net,则 nginx,conf 的内容可类似如下。
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  #日志格式
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    server {
        listen       80;
        server_name localhost; #服务器名
        root C:\Python27\soft\pypi.zsz.net; #网站根目录路径
        access_log  logs/host.access.log  main; #开启登录日志
        location / {
            autoindex on; #列出整个目录
            autoindex_exact_size off; #关闭显示出文件的确切大小
            autoindex_localtime on; #显示的文件时间为GMT时间
            limit_rate 200k; #限制传输速度为200k
        }
    }
}
7.重启 nginx 服务
终止 nginx.exe 进程,并重新执行步骤 2。
访问 http://pypi.zsz.net/simple,出现如下页面即证明 PyPI 本地源配置成功。
 
Windows 环境下基于 nginx 的本地 PyPI 源的使用:
使用类似如下命令,利用本地 PyPI 源安装软件包。注意:其安装方式与利用外部源安装一致,可参考《PyPI 官方第三方库仓库安装工具 pip》。
# pip install --index http://pypi.zsz.net/simple --trusted-host=pypi.zsz.net celery==3.1.23
注意:当配置的源为 http 而非 https 时,需要加入 --trusted-host 描述,确保主机被信任,否则将无法使用本地 PyPI 源安装软件包。
注意:当使用域名解析本地 PyPI 源时,应确保 DNS 解析正确。
 
Windows 环境下基于 nginx 的本地 PyPI 源软件包的维护:
1.使用 pip2tgz 下载 dir2pi 更新软件包索引目录
a.下载软件包
注意:通过 pip2tgz 命令可以下载对应的软件包,应下载至软件目录仓库下。
(1).软件包单个下载
假设下载 celery(3.1.23)版本,则命令如下
# pip2tgz C:\Python27\soft\pypi.zsz.net celery==3.1.23
(2).软件包批量下载
按如下格式编辑软件包列表 requirements.txt
Flask==0.11.1
Flask-Mail==0.9.1
随后,使用如下命令进行批量下载。
# pip2tgz C:\Python27\soft\pypi.zsz.net -r requirements.txt
b.更新索引
注意:通过 dir2pi 命令将目录中的软件包更新索引。
为软件包仓库目录 C:\Python27\soft\pypi.zsz.net 更新索引,命令如下。
# dir2pi --normalize-package-names C:\Python27\soft\pypi.zsz.net
注意:需加入 --normalize-package-names 修饰,这样能格式化命名不符合规范的软件包,使其可以被正常识别。
2.使用 pip2pi 下载并更新软件包索引目录
注意:pip2pi 将会下载所需的软件包,随后为新增的软件包更新索引。
(1).软件包单个下载
假设下载 celery(3.1.23)版本,则命令如下
# pip2pi --also-get-source --normalize-package-names C:\Python27\soft\pypi.zsz.net celery==3.1.23
注意:需加入 --also-get-source 修饰,除了下载 wheel、eggs 等格式的软件包外,还讲下载软件包的源文件,从而确保不同平台上的使用。
注意:需加入 --normalize-package-names 修饰,这样能格式化命名不符合规范的软件包,使其可以被正常识别。
(2).软件包批量下载
按如下格式编辑软件包列表 requirements.txt
Flask==0.11.1
Flask-Mail==0.9.1
随后,使用如下命令进行批量下载。
# pip2pi --also-get-source --normalize-package-names C:\Python27\soft\pypi.zsz.net -r requirements.txt
注意:需加入 --also-get-source 修饰,除了下载 wheel、eggs 等格式的软件包外,还讲下载软件包的源文件,从而确保不同平台上的使用。
注意:需加入 --normalize-package-names 修饰,这样能格式化命名不符合规范的软件包,使其可以被正常识别。
3.手动下载并使用 dir2pi 更新软件包索引目录
a.下载软件包
手动下载软件包文件,并将其存放至软件包仓库目录下。
b.更新索引
注意:通过 dir2pi 命令将目录中的软件包更新索引。
为软件包仓库目录 C:\Python27\soft\pypi.zsz.net 更新索引,命令如下。
# dir2pi --normalize-package-names C:\Python27\soft\pypi.zsz.net
注意:需加入 --normalize-package-names 修饰,这样能格式化命名不符合规范的软件包,使其可以被正常识别。

最新文章

  1. 号称21世纪的编辑器Atom
  2. Effective Objective-C 2.0 — 第10条:在既有类中使用关联对象存放自定义数据
  3. Spark核心—RDD初探
  4. POJ 2763 (树链剖分+边修改+边查询)
  5. php特殊语法--模板引擎中比较常见
  6. git 版本历史
  7. codeforces D. Multiplication Table
  8. 邮件发送 java
  9. 快速排序时间复杂度为O(n×log(n))的证明
  10. Spring框架学习笔记(7)——代理对象实现AOP
  11. asp.net 文件上传 Uploadify HTML5 带进度条
  12. Numpy - 多维数组(上)
  13. 同一个机器 安装多个版本Chrome浏览器的方法
  14. Centos查看端口占用和开启端口命令
  15. 2018 UESTC 线段树专题
  16. Java快捷键与搜狗输入法快键的冲突
  17. 求[1,n]中与m互素的个数
  18. python常用模块之string
  19. CodeForces 569B Inventory 货物编号
  20. FFMpeg笔记(三) 音频处理基本概念及音频重采样

热门文章

  1. 转:JavaScript中函数与对象的关系
  2. UNIX内核的文件数据结构 -- v 节点与 i 节点
  3. 【原创】通俗易懂的讲解KMP算法(字符串匹配算法)及代码实现
  4. 普通方式 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果
  5. 【转】Angular运行原理揭秘 Part 1
  6. chmod命令
  7. 28、activity之间传递数据&批量传递数据
  8. java语言实现简单接口工具--粗简版
  9. 自动化测试(二):QTP验证点
  10. eclipse+xdebug