Python:在哪里放置外部软件包?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python:在哪里放置外部软件包?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2500字,纯文字阅读大概需要4分钟。
内容图文
![Python:在哪里放置外部软件包?](/upload/InfoBanner/zyjiaocheng/686/40ec6b4532a64b268940104633044ddb.jpg)
我有一个Django项目,该项目使用的是我尚未通过virtualenv中的pip安装的外部软件包,而是通过git clone获得的,现在我想知道将其放置在何处以及文件夹的名称应如何.外部包装为:Evernote Python3 SDK
这是我当前的Django项目结构:
? (venv:evernote) evernote_bear_project git:(master) tree
.
├── README.md
├── bear2evernote
│ ├── static
│ └── templates
├── config
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── libs
│ ├── evernote-sdk-python3
│ (omitted)
│ └── utils
│ ├── __init__.py
│ └── file_utils.py
└── manage.py
我将这个包evernote-sdk-python3放在了我的Django项目文件夹中的libs文件夹中.我还将实用程序函数放在libs下的一个名为utils的包中
现在,我知道关于如何像下面两个这样的项目结构有很多建议:
[1] Structuring Your Project — The Hitchhiker’s Guide to Python
[2] Python Application Layouts: A Reference – Real Python
而且我也知道Python不会强迫您使用教条式文件夹结构.但是,尽管如此:我对包装,包装命名和包装结构没有深刻的了解.
>将外部软件包放在(Django)项目根文件夹下是否是一种好习惯?
>将我所有与我的特定Django应用程序无关的软件包/库放在一个名为libs或utils或src的文件夹中是否有意义?
编辑:我也看不到有关如何使用这些文件夹名称的最佳最佳实践:
> src
> lib
>工具
解决方法:
通常,推荐的工作流程如下:
>您的virtualenv应该已经从版本控制中排除(例如,使用.gitignore或.hgignore).如果不是,请立即执行.
>尽可能将内容从PyPI安装到您的virtualenv中,而不是从GitHub或其他地方下载它们.
>如果必须在PyPI上安装某些东西,请使用格式shown in the reference manual之一传递git:// …之类的URL来进行pip安装.如果需要固定到特定的提交,请同时传递-e进行安装,并在URL中包含提交标识符.否则,依赖关系将有效地“活跃”起来,将来您可能无法恢复到该确切的提交.
>如果由于某种原因您必须维护其他人项目的本地分支(例如,因为您正在该项目上运行2to3?),那么按照您的建议进行操作可能很有意义.克隆(或下载(视情况而定))后,使用pip install -e ./libs/libfoo安装.不建议这样做,因为您需要定期从上游拉入或向后移植更改,这非常耗费人力.使用这种方法的版本控制也很麻烦,因为您可能没有可用于三路合并的上游历史记录(有ways around this-注意Linus显示的命令可能不是当今最好的方法).
>安装完所需的所有文件后,请使用pip Frozen生成一个requirements.txt文件,将所述文本文件粘贴到Django项目目录中,然后将其检入版本控制中.该文件应该足以从上游源完全重新生成所有依赖项,而无需将任何依赖项检入源代码控制中(当然,除非您执行的是#4).
>定期执行pip install -U并针对较新版本的依赖项运行回归测试,然后重做pip冻结并将更改检查到版本控制中.当依赖关系破坏向后兼容性或引起其他问题时,您还可以根据需要手动编辑requirements.txt文件.
内容总结
以上是互联网集市为您收集整理的Python:在哪里放置外部软件包?全部内容,希望文章能够帮你解决Python:在哪里放置外部软件包?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。