跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 可以把一些 Python 开源项目当作第三方 Python 库来使用么?
未分類
3 9 月 2020

可以把一些 Python 开源项目当作第三方 Python 库来使用么?

可以把一些 Python 开源项目当作第三方 Python 库来使用么?

資深大佬 : Hlianbobo 7

我们使用 python 第三方库以避免自己造轮子。那么开源项目是否可以当作第三方库来使用么? 如果不能,原因是什么?举个例子。假设我想爬取大众点评的评论内容做数据分析。有两条路:

道路 1:学习 python 的爬虫知识,包括各种第三方爬虫库的使用,如何使用打码平台进行登录验证。如何做爬虫调度,如何针对目标网站的反扒机制针对性的克服反爬等等。其实就是使用他人积累的知识和写好的库实现自己的目的。你说完全可控么?好像也不尽然?那些库不支持的功能你有什么办法么?即使那些库都是开源的你会去看源码,改源码么?比较流行的库比如说 numpy 使用过程中遇到问题在网上搜索或者发帖求助应该会容易获得有用信息吧?我猜也很少有人去看 numpy 的源码寻求解决办法。

道路 2:github 上有个爬取大众点评内容的开源项目。从名字上开至少是针对大众点评开发的。按理说如何登录大众点评,如何克服反爬。包括爬下来的数据存储。这些问题都解决了。虽然未必 100%符合你的需求。但是感觉上应该比道路 1 要省心省力吧。一个硬币两面。因为他已经针对大众点评”定制化开发了“。所以也比较小众了。使用过程中遇到问题,发帖或搜索到有用相关信息的概率也比较低。大概率你要自己看源码消化吸收后自己设法解决。考虑到这些因素后于道路 1 相比,道路 2 还是好的选择么?更何况针对性这么强的一个开源项目,是否好用,也未可知,万一是个坑呢?如何识别是不是坑呢?

以上是我思考时想到的问题。想知道各位论坛大佬在面对以上问题时如何抉择?如何看待以上两条路,哪条路学习成本低?后期维护成本低?有过经历的欢迎现身说法。

以上我思考中反映出的一些认知偏差,还望各位读者指正!

大佬有話說 (11)

  • 資深大佬 : imn1

    关键是看对方授权协议吧
    自己学习应该问题不大,但长久使用,或提供给其他人使用,就要看协议了

  • 資深大佬 : Hieast

    连同作者信息一期直接拷进代码里用就是了

  • 主 資深大佬 : Hlianbobo

    @imn1 你的意思我明白。假设完全是自己用,不涉及商业化。只从学习成本,使用成本,后期维护成本的角度考虑以上问题!

  • 資深大佬 : imn1

    @Hlianbobo #3
    那我就用得多了,但有些我是改了人家的代码才用的
    跟#2 说的一样,我习惯留个来源网址在代码里面,一来方便查看来源有没有更新,二来万一、万一要给别人用,也好去查协议,有几个模块(代码段)就是当时忘了记录来源,现在怎么也想不起在哪 copy 过来的

  • 資深大佬 : dayeye2006199

    这个问题的背景太模糊了。你在开发的个人项目的目的是什么?是抱着学习的目的,还是有目的的获取数据,方便下游系统使用?这个项目是一次性使用,还是需要不断维护迭代?项目的周期有多长?你的个人开发经验是怎么样的?你说的第三方包,是什么机构或者个人维护的?这些因素都会影响你提的问题的答案。

    根据标题来回答的话,很少有 py 程序不依赖第三方包来实现部分功能,所以必然会把开源包作为库来使用

  • 資深大佬 : imn1

    @dayeye2006199 #5
    我觉得他说的是那些开源,但不在 pypi,也没有提供 setup.py 的代码
    我不少代码是从 so 的答案里面 copy 过来的,这些并非一个完整 module,但也确实是别人写的解决一个问题的代码段,不是靠自己能力写出来的

  • 主 資深大佬 : Hlianbobo

    @imn1 你真是太善解人意了。确实,我的意思就是那些只在 GitHub 上开源了。但是没有办法通过 pip 安装进而直接在 python 中通过 import 来使用的三方库。

    也可能是一种认知偏见。我总觉得 pip 上能安装的库,和那些只在 Github 上开源的项目还是有些差别的。

  • 資深大佬 : westoy

    理论上

    自己用, 随意

    作为服务提供给第三方, 除了 AGPL 外随意

    提供源码给第三方, 看引用类库的协议

    实际上么

    类似的东西就算有用, 时效性也非常短的, 到最后你还是必须得自己维护一个

  • 主 資深大佬 : Hlianbobo

    @westoy 对开源项目了解及其有限,请问时效性非常短是什么意思?是说项目维护人有一天会突然关闭这个项目么?

  • 資深大佬 : Reficul

    法律上看许可证,坑不坑看自己。用开源项目出技术问题,就得有看源码去修复问题的觉悟

  • 資深大佬 : renmu123

    要看协议,有些是不允许商用的,个人一般都没什么问题

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具