搭建本地的pip源
開發環境部署機器的時候, 每次從網上下載pip包會很慢, 將需要的包和相關依賴下載到本地, 搭建一個本地源服務器。
基本都是安裝多個包, 推薦使用文件的方式,
文件內容格式, 可以指定版本package==1.0.0
, 也可以不指定package
, 每個包名在一行:
package==1.0.0
package==1.0.0
package==1.0.0
安裝pip2pi
工具
安裝pip install pip2pi
, pip2pi
中包含很多相關的命令。
在指定目錄下創建存放源文件的目錄
mkdir ~/pypi
下載包
下載單獨包pip2tgz path package==1.0
, 可以指定版本, 默認是最新的包
批量下載pip2tgz path -r requirements.txt
建立索引
dir2pi path
, 會創建simple
文件夾
更新索引
多個包: pip2acmeco -r requirements.txt
單個包: pip2acmeco package==1.0.0
搭建服務器
使用nginx
, sudo yum install nginx
, 修改配置文件sudo vim /etc/nginx/nginx.conf
server {
listen 80;
server_name ip或域名;
root path;
location /{
autoindex on;
autoindex_exact_size off; #顯示文件的大小
autoindex_localtime on; #顯示文件時間
#limit_rate_after 5m; #5分鍾后下載速度限制為200k
limit_rate 200k;
}
access_log /var/log/nginx/pypi.log main;
}
修改user xxx
為path
文件夾的用戶和組名user name group
.
使用sudo nginx -t
查看配置文件是否正確
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重啟nginx
服務器sudo systemctl restart nginx
訪問pypi/simple
報403
錯誤, 查看ps -ef | grep nginx
顯示的worker process
是否是和pypi
文件夾的權限一致, 如果不一致, 修改nginx.conf
, 修改user xxx
為, user name group
, name
和group
是pypi
的文件夾用戶和組.
使用搭建的pypi源
全局配置pip源
編輯~/.pip/pip.conf
文件:
[global]
index-url=http://ip:port/pypi/simple
虛擬環境pip源
編輯虛擬環境中venv/pip.conf
:
[global]
index-url=http://ip:port/simple
[install]
trusted-host=ip
示例
sudo yum install -y epel-release
sudo yum install -y mysql-devel
sudo yum install -y nginx
sudo pip install --upgrade pip
sudo pip2tgz /home/pypi/ -r requirements.txt
sudo dir2pi /home/pypi
sudo pip2acmeco -r requirements.txt