Python默认从PyPI存储库下载其依赖项。它包含最新版本(稳定或不稳定)和各种数量的软件包。那么定制私有软件包存储库的需求是什么?想要知道这个问题的答案,首先来说一下依赖管理:您可以显式控制软件包的依赖关系,而不考虑版本弃用或最新的向后不兼容版本。当然,这可以通过在requirements.txt中定义版本来完成,但是要确保我们得到的每个软件包都像我们期望的那样,最好使用自定义存储库。 建立自定义存储库 您需要执行以下操作来创建自己的自定义python存储库。 1. 托管Ubuntu服务器 2. 带有TLS v1.2的Python环境 3. 公共区域 首先登录到您的Ubuntu服务器,然后在require.txt文件中列出所有所需的依赖项,如下所示
boto3 == 1.4.4
botocore == 1.5.90
click == 3.1coloredlogs
== 8.0
configobj == 5.0.6
docutils == 0.13.1
futures == 3.1.1
jmespath == 0.9.3
pexpect == 3.1
pyOpenSSL = = 0.15.1
pyasn1 == 0.4.2
pycrypto == 2.6.1
python-dateutil == 2.6.1
请求== 2.5.3
s3transfer == 0.1.10
scapy == 2.4.0
六个== 1.5.2
speedtest- cli == 2.0.0
urllib3 == 1.7.1
virtualenv == 15.2.0
websocket-client == 0.16.0
wheel == 0.24.0
ndg-httpsclient
distribution
pip == 1.5.4
复制代码
然后创建Python虚拟环境以安装这些依赖项。
pip install virtualenv
virtualenv repo
source repo/bin/activate
mkdir /home/batman/py-cache
复制代码
在虚拟环境中,现有的pip版本应为1.5.4。
- pip install -r requirements.txt --no-use-wheel
- --download="/home/batman/py-cache"
复制代码
现在,所有软件包都已下载到您的Ubuntu服务器中,我们需要将所有软件包组织在标准目录结构中,以便PIP客户端可以识别模块。为此,我编写了一个小脚本,在py-cache目录中运行它,它将为您完成工作。
为os.listdir('/ home / batman / py-cache')中的文件名导入os :
尝试:
package_name = filename.split('。')[0] .split('-')
del package_name [-1]
package_name ='-'。join(map(str,package_name))
打印package_name
os.system('mkdir%s'%package_name)
os.system('mv%s%s /'%(filename,package_name))
除外e:
打印'ERROR:'
打印'e'
复制代码
确保已移动所有包装。如果未移动任何内容,请手动创建目录,然后将tar球移动到其中。我们快到了!让我们托管存储库。 首先安装托管客户端
默认情况下,主机从端口8080启动,请确保没有其他进程拥有它。
使您的终端进入py-cache目录
您已经建立了自己的自定义存储库,现在将其托管在Ubuntu服务器的端口8080中。 通知PIP客户我们的自定义存储库 在您的客户中
添加您的自定义存储库URL
[global]
index-url = http://10.1.10.69:8080
复制代码
然后导出环境变量PIP_CONFIG_FILE。
- 导出PIP_CONFIG_FILE = / etc / pip.conf
复制代码
而已。现在,通常的如下pip安装将从您的自定义存储库安装python软件包。
在这里,您可以完全控制需要提供的依赖性以及需要进行身份验证和禁止的客户端。希望我已经与大家分享了有用的信息。 以上就是关于自定义Python PyPI存储库www.zpedu.com/it/rjyf/12790.html的全部内容,想了解更多关于Python的信息,请继续关注我们。
|