如何将整个 django 项目打包上传至 pypi,再从 pypi 上 pip 下载使用

2021-01-27 16:50:41 +08:00
 IVeverKB

新手,对 pypi 概念其实不是特别理解,只知道用 pip 下载 python 包用。网上查找这方面比较多的也是关于 django 里的 app 如何上传 pypi,但个人认为可以复用的 app 和 django 项目本质不太一样,app 和平常的 python 包比较像。所以想请教下是否有 v 友有相关经验的。。

现在我的猜想是,使用打包工具将 django 项目打包成.tar.gz 这样子的包,上传至 pypi 。从 pypi 对这个包进行下载,解压,解压后的文件就跟源代码目录结构一致,可以直接 py manage.py runserver...这样运行了?

1931 次点击
所在节点    Python
20 条回复
jdhao
2021-01-27 17:00:49 +08:00
自己的项目为啥要传到 pypi,如果只是自己用,直接放 github 不就行了?
IVeverKB
2021-01-27 17:06:18 +08:00
@jdhao #1
之后这个项目要放在服务器端 docker 里运行,要求就是用 pip 下载。可能对那个环境来说 pip 更方便吧?
felinx
2021-01-27 17:06:58 +08:00
私有项目放哪不好要放 pypi
jdhao
2021-01-27 17:08:34 +08:00
@IVeverKB git clone 不香吗,感觉用 pip 管理源码很奇怪。。
IVeverKB
2021-01-27 17:09:11 +08:00
@felinx #3
之后会建个私有的 pypi server 的,但流程跟 pypi 一样。。
ruanimal
2021-01-27 17:09:51 +08:00
直接打包就好了啊,为啥要上传是 pypi,放在内部的 git 不好吗,pip 可以直接安装 git 库的
woshiaha
2021-01-27 17:10:27 +08:00
没懂 用 docker 跑直接打成 docker 镜像不就行了吗
IVeverKB
2021-01-27 17:10:46 +08:00
@jdhao #4
也不是我定的呀。。
CallMeReznov
2021-01-27 17:10:49 +08:00
既然要放到 docker 里,直接打包成 image 不是更好吗?
IVeverKB
2021-01-27 17:12:34 +08:00
@woshiaha #7
镜像的 dockerfile 直接 pip 下载这个项目使用。。打成 docker 镜像那岂不是每次更新代码都要重打一遍
IVeverKB
2021-01-27 17:13:47 +08:00
?如果有人能真的回答我这个问题而不是告诉我我的问题有问题就好了
okletswin
2021-01-27 17:35:48 +08:00
@IVeverKB 主要大家不愿意浪费时间学习如何做一件愚蠢的事再教给你
IVeverKB
2021-01-27 17:43:53 +08:00
@okletswin #12
I mean 我必须这么做,也不用浪费时间来告诉我可以不这么做的方法而已,并不是在抱怨。
能得到回答就最好了,得不到也无所谓。
jdhao
2021-01-27 17:47:46 +08:00
@IVeverKB 那你就看如何做一个 python 包并上传到 pypi 就行了
gazagoal1
2021-01-27 17:54:14 +08:00
@IVeverKB
django 依赖库有变化的话,在本地 build docker image 然后 push 到容器 repository(比如 AWS 的 ECR),到远端 pull 回来就行了。

只是代码有变化,尤其开发阶段,直接挂载 django 的本地的 django 目录到 docker mage 里就可以了。代码更新本地 push to git,在服务器端,git pull 到服务器的本地目录,重启 docker 容器就可以了,不用重新 build 。
IVeverKB
2021-01-27 17:56:10 +08:00
@jdhao #14
嗯我的问题其实就是 python 包和 django 项目在本质构成上是有区别的(毕竟 django 不是用 import...来使用的),pypi 会不会因为这个区别而导致 django 项目在这个流程中产生变化。
我先试一下可不可以吧,感谢
jdhao
2021-01-27 18:01:36 +08:00
@IVeverKB 满足 pypi 需求前提下,然后大不了进入这个库的目录,运行你想运行的代码就行了,和你原来没有任何区别。。
felinx
2021-01-27 18:02:53 +08:00
pypi 如何上传打包现成的文档说明很清楚,随便用啥搜索引擎都能搜到,这种基础问题不用社区自己完全能解决

https://packaging.python.org/tutorials/packaging-projects/
wh0syourda66y
2021-01-27 18:05:55 +08:00
什么奇怪需求都有,这样不行吗?

```
pip install git+https://github.com/user/repo.git@branch
```
IVeverKB
2021-01-27 18:10:33 +08:00
@jdhao #17
@felinx #18
谢谢现在完全明白了。
非常感谢。主要之前一直停留在 pip 只能安装 python 包了,没走出这个逻辑。以后会科学用社区的 QAQ

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/748969

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX