首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪些Linux目录应该用于python应用程序?

哪些Linux目录应该用于python应用程序?
EN

Unix & Linux用户
提问于 2023-02-07 02:21:06
回答 1查看 113关注 0票数 1

到目前为止,我使用pyenv在目录/home/pydev中以用户名pydev安装python版本。我使用Debian包direnv将项目目录与使用pyenv安装的python版本链接起来。我使用pip-tools存储项目目录中每个项目的自定义python环境。

编辑-这个链接给出了隔离开发环境的基本原理。

https://pwal.ch/posts/2019-11-10-sane-python-environment-2020-part-1-isolation/

编辑-上面链接的作者在这里开发了自己的独立python环境工具(我不想在每个项目中安装一个python版本,所以我使用Pyenv和pip工具将python版本与env库链接起来):

https://github.com/pwalch/lonesnake

我正在编写python应用程序,用于开发、潜在的专利披露,并有望在Linux服务器上启动生产。文件系统层次标准(FHS)指定了/srv中的数据存储和/opt中的软件应用程序。

https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/Linux-Filesystem-Hierarchy.html#opt

/opt/pythonapp01/code0000

/srv/pythonapp01/eod-data

我现在正在开发的应用程序使用csv格式的终日数据,这种数据在开发中不更新,但在生产中每天晚上都会更新。python代码将将csv转换为其他csv格式,作为文件存储,并将这些修改后的csv文件转换为文件格式,以提供高级图表。

我的问题是如何在Linux文件系统层次结构下组织目录?如何存储用于开发的文件,支持可能的专利泄露,并在Linux服务器上将生成的python应用程序(S)投入生产?开发和文档文件是否应该位于用户文件夹中?eod数据应该进入/srv/pythonapp01,代码应该进入/opt/pythonapp01/code0000吗?在生产中,pyenvpip-tools安装环境是否也应该进入/opt下的应用程序目录?我已经读过应用程序应该避免在生产中使用系统python,并且我从未在生产中设置python应用程序,因此在开发阶段的早期获得一些指导会有所帮助。

EN

回答 1

Unix & Linux用户

发布于 2023-02-07 03:29:26

这是几个问题,我把它们抽象成三个:

  1. 如何组织用于开发的Python源代码和文档?
  2. 如何将Python应用程序打包并部署到Linux?
  3. 我在哪里存储每天生成的数据?

组织开发和文档文件

使用源代码/版本控制系统,可能是现代版本控制工具git,附带GitLab或GitHub或类似的git托管服务,以实现安全共享的远程存储。

因此,您将有一个存储库,一个为您的项目或应用程序命名的特殊目录。

在您的存储库中,文档和源代码的安排将取决于您正在构建的内容。我喜欢将文档保存在.md.rst文件中的docs目录中。习惯上有一个描述项目/回购的README.md

Kenneth为Python模块创建了一个示例结构,如下所示:https://github.com/navdeep-G/samplemod。对于初学者来说,这并不是完全最小的,所以你可以跳过你不懂的部分,但这是一个很好的起点。https://docs.python-guide.org/writing/structure/描述了这种结构。

我不确定pyenv是否与下面描述的部署方法一起工作,因为我使用的是venvvirtualenv,,但是部署真正需要的是一个requirements.txt,列出在新的python环境中需要安装的包。您可以在工作环境中通过对已安装的所有包键入requirements.txt来创建pip freeze。将其重定向到requirements.txt并保存它。

如何打包和部署Python?

对于基于Linux和Unix (Mac)的“单文件”部署,pex工作得很好,而且相当简单。https://pypi.org/project/pex/。在https://medium.com/ovni/pex-python-executables-c0ea39cee7f1有一个简短的、清晰的教程。

除了pex,,还有很多其他的选择,如果您想调查它们,可以从https://packaging.python.org/en/latest/开始。

要明确回答您的问题“pyenv和pip安装环境是否也应该进入生产中的/opt下的应用程序目录?”,您不需要安装这些文件,因为pex文件是独立的。

我在哪里存储每日数据?

您问:“eod数据是否应该进入/srv/pythonapp01,代码是否应该进入/opt/pythonapp01/code0000??”

数据位置看起来不错,但是您的应用程序看起来更像/opt/bin/pythonapp01.pex (或者您选择的任何二进制/可执行/打包格式)在/opt/bin中(然后您需要将/opt/bin添加到任何想要运行它的用户的PATH中)。例如,Mac安装到/opt/homebrew/bin. /usr/local/bin的自制包是另一个流行的安装位置。

您可以使用许多方案来保存当天结束时的数据,例如按年份1到365的日期,或者按日期使用分层目录。我将每日温度读数保存在/mnt/data/2023/02/06/中,每天创建一个新的日目录,每个月创建一个新的月度目录,以及每年创建一个新的年度目录。

保持备份!

我希望这是有帮助的!

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/734621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档