当前位置: 首页 > news >正文

网站建设既有书籍又有光盘网站建设 自动跳转

网站建设既有书籍又有光盘,网站建设 自动跳转,中铁建设门户网个人登录,沈阳商城网站开发转自#xff1a;Python猫有一个这样的问题#xff1a;现要用 setuptools 把一个项目打包成 whl 文件#xff0c;然后 pip install 在 Windows/Linux 两种操作系统上#xff0c;但是该项目中有一些依赖库只有 Windows 上才有(例如 pywinauto、pywingui、pywinrm)#xff0c… 转自Python猫有一个这样的问题现要用 setuptools 把一个项目打包成 whl 文件然后 pip install 在 Windows/Linux 两种操作系统上但是该项目中有一些依赖库只有 Windows 上才有(例如 pywinauto、pywingui、pywinrm)那么问题是如何实现打包文件的可兼容性安装从打包的角度这个问题的关键还是看 setup.py 和 requirements.txt 文件。关于 Python 的包构建分发和 setup.py 的使用这里有篇文章 写得很好推荐阅读。另外关于 Python 依赖库的管理(requirements.txt)这篇文章 详细比较了 pip、pipreqs、pigar、pip-tools 和 pipdeptree 等工具也推荐一读。有一个比较笨的实现方法维护两份 requirements.txt 文件分别用来打包然后分发给不同操作系统去使用。但是这样会有麻烦维护两份依赖文件和两种包文件本身就挺费劲的而在生成过程中每次还得对它们改名以作区分(注意包名有一定的规范约束乱改的话pip 可能识别不出)维护成本就很高。其实维护软件包在不同操作系统的版本并不少见。如果你曾留意过不同版本 Python 库文件的话你会注意到很多库都会按不同操作系统而分发不同的版本。例如下面是同一版本号的 Numpy 在不同操作系统上的分发版(https://pypi.org/simple/numpy/)可以看出它根据 macos、linux 和 win 三类操作系统及其位数分成了 5 个版本。维护这么多版本肯定是一件麻烦事但是出现了这样的结果就意味着 Numpy 官方认为分发不同系统版本是利大于弊的而且是有办法实现的。回到我们的问题是否有必要像 Numpy 那样设法打包成多个操作系统定制的包呢答案是否定的。主要的原因Numpy 这么做是因为它是做科学计算的为了提升效率它把编译好的 C 拓展文件打包从而不需要依赖环境上的 libxxx-devel 之类的库。如果你编译安装过 Python应该有印象需要安装 zlib-devel、openssl-devel 和 libffi-devel 之类的系统依赖。但我们前面的问题比较简单并不是有不同的编译依赖(系统级)而只是三方库依赖不同(项目级)。另一个主要的原因Numpy 打包出的不同系统版本并非简简单单地用 setuptools 之类的 Python 库就能打包而是要借助标准的镜像进行构建。例如manylinux 版本的打包参见 Github(https://github.com/pypa/manylinux)就需要使用官方提供的 Docker 镜像。对于我们的问题显然不想做到这么麻烦。简而言之根据前面的分析如果要实现操作系统兼容的打包维护多份依赖文件、使用不同构建包的方法、维护多系统专用的包方法可行但并不是很适用。如果没有新的办法这不失为一种考虑但是有没有别的办法了呢我曾被这个问题困扰过但是没有深入去研究解决直到无意中在loguru 这个用来记录日志的库的 setup.py 中看到再翻看大名鼎鼎的requests 库文件发现还可以这样写两个示例都是写在 setup.py 文件中其实如果我们用 requirements.txt 文件也可以按这种格式写然后再读取进来。这种神奇的写法是怎么回事呢它的依据是 2015 年 11 月创建的 PEP-508(以及相关的但已被撤销或拒绝了的 PEP-390、PEP-426、PEP-459、PEP-496)该 PEP 的主要意图是增强 pip 等工具查找软件包的能力。比较重要的部分就是跟我们的问题相关的即对操作系统作区分的标识相关的有有了这样的扩展支持在打包依赖项时就可以解决兼容性问题了。例如 colorama 库如果我们只在 win32 系统才需要依赖那么在打包时就可以指定“colorama0.3.4 ; sys_platformwin32 ”如果不需要限定 win32 系统而是在 windows 环境都安装那么可以写成“colorama0.3.4 ; platform_systemWindows ”。最终我们解决了本文开头的问题。这个问题可能比较小众解决起来也没有什么大文章可做算是一个小小的 tips 分享给大家吧。感谢阅读推荐阅读1真实的上海IT圈张江男vs漕河泾男2真实的北京IT圈后厂村姑 vs 后厂村花3为什么你的提问没人解答4Python爱好者社区历史文章合集好看请点这里~
http://www.pierceye.com/news/988551/

相关文章:

  • 免费关键词挖掘网站wordpress发多少文章卡
  • html网站建设的步骤wordpress 自定义变量
  • 网站建设的意见建站公司有哪些服务
  • 广东美景园林建设有限公司网站陕西网络公司网站建设
  • 网站关键词怎么填写南昌网站建设一般多少钱一年
  • 公司网站制作费用无区域公司注册要求
  • 网站文章更新时间去国外做外卖网站好
  • 北京网站制作设计wordpress seo 介绍
  • 手机网站搭建平台怎么查网站域名备案
  • 用文件传输协议登录网站网站开发设计手册
  • 有什么兼职做it的网站网络推广怎么做才有效
  • 网站后台开发教程沈阳网站制作流程
  • 可以自己做课程的网站深圳小型网站建设
  • 静安做网站公司网站上线的通知
  • 怎么建设电影网站wordpress 附件上传插件下载
  • 网站导航内链建设企业网站设计方式有哪些
  • 手表网站建站千秋网络是家西安做网站的公司
  • 济南企业网站百度seo优化是做什么的
  • 网站颜色搭配案例wordpress洛米主题
  • 网站几个关键词网站备案为什么要关闭
  • 深圳网站制作哪家便宜怎么利用百度云盘做网站
  • 美容培训东莞网站建设做的网站上更改内容改怎么回事
  • 绵阳新农网的网站是哪个公司做的wordpress 在线教育主题
  • 大连优化网站怎样制作企业的网站
  • 网站建设邀请函北京网站优化 卓立海创
  • 公司后台的网站代理维护更新商贸有限公司注销流程
  • 网站建设工作动态wordpress次元主题
  • 手机网站源码asp网站快速排名技巧
  • 站点怎么建网页宁波网站建设设计制作公司
  • 黑龙江企业网站建设网站模板带后台 下载