我有一个 Django 项目,它使用一个外部包,我没有通过pip我的 virtualenv 安装它,而是通过 获得它git clone,现在我想知道将它放在哪里,以及文件夹的名称应该如何。外部包是这样的:Evernote Python3 SDK
这是我当前的 Django 项目结构:
\n\n\xe2\x9e\x9c (venv:evernote) evernote_bear_project git:(master) tree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 bear2evernote\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 static\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 templates\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 config\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 settings.py\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 urls.py\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 wsgi.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 libs\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 evernote-sdk-python3\n\n\xe2\x94\x82 (omitted)\n\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 utils\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file_utils.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 manage.py\nRun Code Online (Sandbox Code Playgroud)\n\n我已将此包放在Django 项目文件夹中evernote-sdk-python3名为的文件夹中。libs我还将实用函数放在一个名为utils下面的包中libs
现在我知道有很多关于如何构建项目的建议,如下两个:
\n\n[1]构建项目 \xe2\x80\x94 Python 搭便车指南
\n\n[2] Python 应用程序布局:参考 \xe2\x80\x93 Real Python
\n\n而且我也知道 Python 不会强迫你使用教条式的文件夹结构。但尽管如此:我对打包、包命名和包结构没有深入的了解。
\n\n将外部包放在我的(Django)项目根文件夹下是个好习惯吗?
将与我的特定 Django 应用程序无关的所有包/库放在一个名为libsorutils或 的文件夹中是否有意义src?
编辑:我也没有看到有关如何使用这些文件夹名称的明确最佳实践:
\n\nsrclibutils一般来说,推荐的工作流程如下:
.gitignore或.hgignore)。如果不是,请立即这样做。git://...形式之一传递一个 URL,例如pip install 。如果您需要固定到特定提交,也请传递到安装,并在 URL 中包含提交标识符。否则,依赖关系将有效地“处于头部”,并且您将来可能无法返回到确切的提交。-epip install -e ./libs/libfoo(或下载,视情况而定)。不建议这样做,因为您需要定期从上游引入或反向移植更改,这是非常耗费人力的。版本控制也成为这种方法的一个难题,因为您可能没有可用于三向合并的上游历史记录(有一些方法可以解决这个问题- 请注意,Linus 显示的命令可能不是当今最好的方法)。pip freeze生成 requests.txt 文件,将所述文本文件粘贴到 Django 项目目录中,然后将其签入版本控制。该文件应该足以从上游源完全重新生成所有依赖项,而无需将任何依赖项检查到源代码管理中(当然,除非您正在执行#4)。pip install -U较新版本的依赖项进行回归测试,然后重做pip freeze并将更改检查到版本控制中。当依赖项破坏向后兼容性或以其他方式导致问题时,您还可以根据需要手动编辑requirements.txt 文件。| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |