pip安装模块时出现好多依赖,如果没有外网,需要自己一个个下载后上传到服务器,然后还得手动安装,有依赖,还得先安装依赖包,就像使用rpm装包一样,所以最好搭建一个自己的pip源。
1.安装pip
操作系统默认没有pip,Centos安装需要有epel源,没有就去阿里的镜像站下载或者搜索python2-pip,在epel源里。
下载后rpm -ivh
安装
2.安装pip2pi
]# pip install pip2pi
3.编写requirements
将所有的需要从外网pip server下载的版本要求写入到requirements.txt
]# vim requirements.txt
ansible>=2.5.0,!=2.7.0
jinja2>=2.9.6
netaddr
pbr>=1.6
hvac
4.下载并建立索引
下载到指定目录,并生成index索引
]# pip download -r requirements.txt -d /opt/repos/pip-packages/
]# dir2pi /opt/repos/pip-packages/
5.搭建http Server
本地搭建http server,将目录指到/opt/repos
]# yum install nginx
]# vim /etc/nginx/nginx.conf #修改Server段配置
server {
listen 8000 default_server;
listen [::]:8000 default_server;
server_name _;
root /opt/repos;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
自定义参数如下:
listen:监听的端口,ipv4和ipv6的,ipv6不写也行
root:网站根目录路径
location段
autoindex on; 显示目录(nginx默认不允许列出整个目录)
autoindex_exact_size off; 关闭文件大小的精确计数,使用K,M,G,为单位(这样方便阅读)
autoindex_localtime on; 使用服务器时间,不开启的话就使用国际时间(比北京时间慢8小时)
启动nginx
6.测试
找一个机器,设置pip的配置文件,使用我们刚搭建的pip源
]# vim /root/.pip/pip.conf
[global]
trusted-host = 192.168.1.10
index-url = http://192.168.1.10:8000/pip-packages/simple
再次核对一下目录
1.pip的包是放在/opt/repos/pip-packages
下
2.建立pip索引指向的目录是也是/opt/repos/pip-packages
,所以会在目录下生成一个simple目录,里面有index.html文件
3.nginx配置文件中的root指向/opt/repos
,所以你访问8000端口的时候会显示pip-packages这个目录
4.pip的配置文件里的index-url指向的是index.html文件的位置,所以应该是http://192.168.1.10:8000/pip-packages/simple
目录按照这种方式就行,不是必须放在/opt下,名字也不必就要叫pip-packages
网友评论