pypi搭建私服

1. 基本概念

pypi可以理解为一个大的仓库,这个仓库中保存着很多python开发相关的包,如numpy,pandas等.当我们需要某个包的时候,我们会执行pip install xxx来安装.这句话背后的逻辑是pip去远程仓库中寻找包,然后下载并解压安装到本地python环境中(通常位于dist-packags下).

一般来说,仓库分为三类,一类是第三方库,在第三方库中最著名的是中央库,全世界的python包都存储在这里.除中央库外,还有阿里云,豆瓣等第三方库,第三方库主要通过代理(proxy)的方式进行连接配置.一类是本地库(host),本地python包的上传和下载都在本地库进行,还有一类是组库(group),组库并不是一个具体的库,而是将多个本地库和代理库组合起来形成一个库,是一个抽象的概念.

当我们希望我们开发的包只在公司内部用时,这个时候就需要搭建pypi私服,搭建好私服后,我们上传到私服的包外人是没法访问的,只有我们自己可以访问.公共的python包不受影响.当我们采用pip命令去安装软件时,执行的顺序是先检查本地是否存在相应的包,如果有就直接安装,否则就去远程取相应的包进行安装.

2. nexus安装

搭建私服最常用的是nexus,nexus下载见链接nexus下载链接.

下载好了以后,解压,然后进入nexus文件夹下的bin目录下,执行命令

nexus.exe /install nexus
nexus.exe /start nexu

这样就完成了nexus的启动.浏览器访问
‘http://localhost:8081/’,可以看到如下页面,证明安装成功.
在这里插入图片描述

3. pypi私服配置

用管理员账户密码登录nexus3,然后点击左侧栏仓库图标,接着点击创建仓库.
在这里插入图片描述
接着我们可以看到pypi的三个选项,在本例中,我们搭建一个host,一个proxy和一个group库.
在这里插入图片描述
建立host库很简单,直接点击创建仓库即可.
在这里插入图片描述
搭建代理仓库需要填写代理仓库地址,常用的代理仓库地址如下表所示.,直接在页面中填写链接地址点击创建仓库即可.

仓库名称代理地址
官方源http://pypi.python.org/pypi/
阿里云http://mirrors.aliyun.com/pypi/

在这里插入图片描述

接着创建group仓库,直接点击创建,然后加入刚刚的两个仓库就可以.

4. 测试

我们写一个freewheel来对我们刚刚新建的私服进行测试,执行如下命令.

mkdir freewheel

touch freewheel/__init__.py

vim freewheel/demo.py

然后编写freewheel代码,代码如下

class Demo:
    @staticmethod
    def sayHello():
        print('hello')

接着编写setup.py

from setuptools import setup

setup(
    name='freewhell',
    version='1.0',
    author="techlog",
    license="MIT",
    packages=[
        'freewheel'
    ],
    install_requires=[
    ],
    classifiers=[
        "Topic :: Utilities",
        "Topic :: Internet",
        "Topic :: Software Development :: Libraries :: Python Modules"
    ],
)

对文件进行打包,执行

python setup.py sdist bdist_wheel

此时生成的目录结构如下
在这里插入图片描述
其中,dist下面的文件是我们需要上传到服务器的,如图所示
在这里插入图片描述
接着使用twine将dist下面的包上传到私服,执行如下命令,其中,url换成我们刚搭建好的host库的url,直接在nexus界面上点击复制链接即可.此时需要输入管理员用户名和密码.

pip install twine

twine upload --repository-url <url> dist/*

执行完毕后,我们可以在仓库中看到我们上传的包.

测试pypi包的下载,执行命令,其中url换成group库的url,host换成url中对应的host.可以看到顺利安装了对应的包.

pip install freewheel -i <url>/simple --trusted-host <host>

在代码中测试刚刚下载的包,测试代码如下

from freewheel.demo import Demo

if __name__ == '__main__':
    Demo.sayHello()

屏幕中会打印出hello.

4. 参考文献

pypi私服测试

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 CentOS 上搭建 PyPI 镜像,您可以按照以下步骤进行操作: 1. 安装并配置 Nginx 服务器 在 CentOS 上安装 Nginx: ``` sudo yum install nginx ``` 配置 Nginx 服务器,将其作为 PyPI 镜像的代理服务器。在 Nginx 的配置文件 `/etc/nginx/nginx.conf` 中添加以下内容: ``` server { listen 80; server_name pypi.example.com; access_log /var/log/nginx/pypi.access.log; error_log /var/log/nginx/pypi.error.log; location / { proxy_pass http://pypi.python.org; proxy_set_header Host pypi.python.org; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 注意将 `pypi.example.com` 替换为您的 PyPI 镜像域名。 2. 安装并配置 devpi-server devpi-server 是一个 PyPI 服务器,您可以使用它来创建本地 PyPI 镜像。在 CentOS 上安装 devpi-server: ``` sudo yum install python3-pip sudo pip3 install -U devpi-server ``` 创建一个 devpi-server 实例: ``` devpi-server --start --host=127.0.0.1 --port=3141 ``` 您可以使用 `--port` 参数指定 devpi-server 实例的端口号。 3. 配置 pip 在您的 CentOS 机器上,打开 `~/.pip/pip.conf` 文件,如果没有该文件则创建它,添加以下内容: ``` [global] index-url = http://pypi.example.com/simple/ trusted-host = pypi.example.com ``` 注意将 `pypi.example.com` 替换为您的 PyPI 镜像域名。现在,当您使用 pip 安装 Python 包时,它将从您的本地 PyPI 镜像获取软件包。 希望这些步骤可以帮助您在 CentOS 上搭建 PyPI 镜像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值