python推包到私有仓库

1.先搭建pypi源服务器

pip install pypiserver
pypi-server -p 8080 D:\packages\ #无密码验证启动
pypi-server -p 8080 -P F:\commons-lib\htpasswd.txt D:\packages\ #有密码验证启动
这里的htpasswd.txt参考官方文档https://pypi.org/project/pypiserver/,

htpasswd是用来添加认证
使用htpasswd创建用户和密码,首先安装 passlib:
pip install passlib
创建htpasswd文件并创建一个用户(admin),并按照提示输入密码:
htpasswd -s htpasswd.txt admin

如果是windows的话用网页在线生成然后自己写入到文本里,设置的这个密码在之后upload模块的时候要用到。

测试访问:http://localhost:8080/simple/可看到本地有什么库。

可以把一些已有requirements.txt的库下载到私有库,然后再另外安装到私有库,不过不推荐这种方式,会有一些包在官方源没有,例如conda的库。
pip download -d D:\packages\ -r D:\requirements.txt --index-url https://mirrors.aliyun.com/pypi/simple
pip install --index-url http://localhost:8080/simple/ --extra-index-url https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt

推荐在pip源里设置2个源,1个官方源,1个私有库的源。然后我们只需把自己的库upload到私有库就行。pip install 的时候会根据配置的优先级搜索这些源的包。

设置pip的源,windows在C:\Users\username\pip\pip.ini,没有的话自己创建,这里设置了2个源,当一个源没的时候就会在第二个源搜
[global]
timeout = 10
index-url = http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://localhost:8080/simple/
[install]
trusted-host=
    mirrors.aliyun.com
    localhost

2.打包

最基础要有个setup.py

import setuptools

setuptools.setup(name='irequest',
                 version='1.0',
                 description='irequest description',
                 author='Bird',
                 author_email='a@a.com',
                 url='http://a.com',
                 packages=setuptools.find_packages()
                 )

setuptools和wheel和twine并升级到最新版本
python -m pip install --user --upgrade setuptools wheel twine

python setup.py check #检查setup.py是否正确,返回running check就是正确
python setup.py sdist #打包出.tar.gz

python setup.py sdist bdist_wheel #打包出.tar.gz和.whl
在dist目录中生成两个文件.tar.gz和.whl
该tar.gz文件是源存档,而该.whl文件是构建的发行版。较新的pip版本优先安装构建的发行版,但如果需要,将回退到源代码存档。您应该始终上传源存档并为项目兼容的平台提供构建的存档。

分别上传.tar.gz和.whl,可以上传其中一个
python setup.py sdist upload -r test-pypi
python setup.py bdist_wheel upload -r test-pypi
或者用twine上传
python -m twine upload --repository test-pypi dist/*

3.上传前要配置好.pypirc
register和upload命令会去~/.pypirc配置文件中,查找PyPI的配置。如果是搭建了一个私有PyPI源,那么就需要在~/.pypirc中配置下私有仓库的地址,账号和密码信息
一般在~/.pypirc(Linux下是/home/username/.pypirc,windows是C:\Users\username\.pypirc)上写入,没有的话自己创建,注意不要有中文,index-servers的值换行后前面有tab空格,必须要有username和passowrd

[distutils]
index-servers = 
	pypi
	pypitest
	test-pypi
 
[pypi]
repository: https://pypi.python.org/pypi 
username:{{your_username}} 
password:{{your_password}} 
 
[pypitest]
repository: https://testpypi.python.org/pypi
username:{{your_username}} 
password:{{your_password}} 
 
[test-pypi]
repository:http://localhost:8080
username:admin
password:admin

参考:

https://blog.csdn.net/wdxin1322/article/details/56685094/
https://www.colabug.com/2020/0316/7128915/
http://cloga.info/python/2019/07/07/build_your_private_pip_source
https://blog.zengrong.net/post/python_packaging/

使用docker部署devpi框架的pypi服务:

如何用 Docker 构建企业级 PyPi 服务?

Python私有仓库通常指的是开发者用于存储和管理代码库的私有空间,比如GitHub、GitLab或Bitbucket等平台上创建的私有仓库。这些仓库的内容不对外开放,仅限于团队成员或者授权的人访问。如果你想在Python项目使用私有仓库,你需要进行以下步骤: 1. **创建账户和私有仓库**: 如果你还没有私有仓库,首先在GitHub等平台注册并创建一个。 2. **配置`git`**: 使用命令行工具,确保你的本地git配置了对私有仓库的访问权限。这通常涉及到添加SSH密钥或生成Personal Access Tokens(PAT)。 ```bash # 添加SSH密钥 (如果你没有,需在GitHub账户设置生成) ssh-keygen -t rsa -C "your_email@example.com" cat ~/.ssh/id_rsa.pub | ssh -T git@github.com # 或者使用PAT (适用于HTTPS) git config --global credential.helper store git clone https://github.com/username/private_repo.git ``` 3. **添加仓库地址**: 将私有仓库的URL添加到你的项目的`.gitignore`(如果有的话)或者`.git/config`文件,替换为你的实际仓库地址。 4. **推送代码**: 当你有新的代码更改时,使用`git push`命令将代码推送到私有仓库。 5. **版本控制**: 确保遵循良好的版本管理实践,如使用`git flow`或`semantic versioning`来标记和发布不同版本。 6. **权限管理**: 在团队协作,可能需要为特定的团队成员分配读写权限,可以通过GitHub的团队或成员权限设置来完成。 相关问题: 1. 什么是Git的SSH密钥和Personal Access Tokens? 2. 如何在GitHub上设置私有仓库的访问权限? 3. 如何在Python项目管理多个仓库的切换?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值