Python整理
文章目录
前言
如果对您有帮助, 请反手一个赞~
搭建私有pypi服务器, 打包, 上传
一、服务器端
1. centos系统
新下载的centos镜像, 因为centos已经停止维护, 安装工具包会失败, 比如我安装wget命令时, 报错:
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
解决:
-
首先,进入到 yum 的 repos 目录
cd /etc/yum.repos.d/
-
其次,修改 centos 文件内容
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
-
然后,生成缓存更新(第一次更新,速度稍微有点慢,耐心等待两分钟左右)
yum makecache
-
最后,运行 yum update 并重新安装 所需要的包
yum update -y
yum -y install 所需要的包
yum -y install wget
2. 安装python
安装python的依赖包下载:
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make
- 下载python
- 进入官网: https://www.python.org/, downloads选项下, 选择source code
- 选择最新版
- 进入页面后, 向下滑动, 找到Gzipped source tarball, 复制其下载地址
- 在centos中使用命令下载文件:
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
- 进入官网: https://www.python.org/, downloads选项下, 选择source code
- 解压文件
tar -xvf Python-3.11.4.tgz
- cd进目录
cd Python-3.11.4
- 安装
安装目录:./configure --prefix=/usr/local/python
安装:
make & make install
- 创建软连接
ln -s /usr/local/python/bin/python3.11 /usr/bin/python
ln -s /usr/local/python/bin/pip3.11 /usr/bin/pip
- 配置linux的环境变量, 避免后面安装的pypiserver包无法找到命令
- 打开文件
vi ~/.bash_profile
- 添加配置
export PYTHON_HOME=/usr/local/python
export PATH=$PYTHON_HOME/bin:$PATH
- 保存退出后执行
source ~/.bash_profile
- 打开文件
3. 密码认证依赖
上传包到私有服务器时, 设置密码认证
- 安装htpasswd
yum install -y httpd
4. 安装pypiserver
pip install pypiserver
5. 在home目录下新建packages文件夹
mkdir packages
6. 生成秘钥文件
cd packages
htpasswd -c pypi_psd pypi_test
pypi_psd是秘钥文件名
pypi_test是用户名
上面的命令执行后会, 让你输入两次密码, 结束后生成pypi_psd文件
7. 运行服务(在8080端口运行)
pypi-server run -p 8080 -P pypi_psd /home/packages/
二、Python项目(客户端)
1. 安装所需要的包
pip install twine
2. 创建setup.py
在需要上传的项目根目录下创建文件 setup.py。
py文件内容简版如下:
from setuptools import setup, find_packages
setup(
name='pypi_test',
version='0.1',
packages=find_packages(),
install_requires=[],
# 以下内容是可选的,根据需求添加
author='Y',
# author_email='your_email@example.com',
description='add.',
# url='http://your_package_url.com',
)
3. 打包
python setup.py sdist bdist_wheel
会生成文件夹 dist
sdist (source distribution) 是源代码分发包,它会将项目源代码及其他必要文件打包成一个压缩包,
通常是 .tar.gz 或 .zip 格式。这种分发包支持在任何平台上安装和运行,但需要先编译和安装依赖库,
生成的分发包也比较大。
bdist_wheel (binary distribution wheel) 是二进制分发包,它会将项目源代码编译成二进制代码,
打包成一个 .whl 文件。这种分发包可以在与打包时使用的Python版本和操作系统架构完全匹配
的系统上直接安装和使用,不需要再编译和安装依赖库,因此安装速度更快,分发包也更小。
如果你的项目是纯Python代码,没有任何C或C++扩展,那么使用sdist即可;如果你的项目包含
了C或C++扩展,或者使用了其他语言的库,那么最好同时使用sdist和bdist_wheel,以便在不同
平台上都能够顺利安装和运行你的项目。
4. 上传到私有pypi
twine upload --repository-url http://服务器ip:8080/ --user=pypi_test --password=123 dist/*
user和password就是htpasswd命令时设置的
以上就是今天要讲的内容,感谢查阅! 随手点赞you~
三、参考链接
centos系统参考: 系统问题解决