根据Linux Filesystem Hierarchy Standard放置Python虚拟环境的
正如标题所示,根据
Linux FHS,在
Linux操作系统上存储
Python虚拟环境的技术上合适的位置是什么?
另一种方法是说明一个明确的答案:将Python虚拟环境的位置与您服务的数据文件分开是“技术上正确的”吗? 注意:This question differs from the closest,already-asked question I could find,因为虚拟环境包含库,二进制文件,头文件和脚本. 作为一个额外的复杂功能,我倾向于编写支持互联网可访问服务的代码.但是,我并不认为这可以将我的需求与服务的使用者是同一服务器上的其他进程的情况大不相同.我提到这个细节,以防我对评论的回复包括“web dev” – 内容. 作为参考,我使用以下文档作为我对Linux FHS的定义:http://www.pathname.com/fhs/pub/fhs-2.3.html 我不相信流行的virtualenv-wrapper脚本建议正确的操作,因为它默认将虚拟环境存储在用户的主目录中.这违反了目录用于特定于用户的文件的隐含概念,以及“没有程序应该依赖于此位置”的语句. 从文件系统的根级别,我倾向于 如果我要与我的反向代理的决定一起,这意味着
我认为选择正确位置的部分困难是因为虚拟环境是一个“环境”,它包含二进制文件和库(几乎就像它自己的小层次结构),这让我觉得/ usr下的某个地方更多常规: virtual-env/ ├── bin ~= /usr/local : "for use by the system administrator when installing software locally" ├── include ~= /usr/include : "Header files included by C programs" ├── lib ~= /usr/lib : "Libraries for programming and packages" └── share ~= /usr/local 根据我的假设和想法:考虑Nginx作为Python应用程序的反向代理的常见场景.在/usr/local / service_name /下放置虚拟环境和源代码(例如application.py)是否正确使用/ srv更频繁更改的文件(例如’静态’资产,图像,css)? 编辑:要明确:我知道为什么以及如何使用virtualenvs.我对项目布局或在开发环境中工作并不感到困惑. 解决方法
请记住,Linux FHS不是真正的标准,它是一套指导方针.它只被LSB称为标准 – 这只是一堆使Linux更容易支持的规则. / run,/ sys,/ proc和/usr/local都不是LFS的一部分,但你可以在大多数Linux发行版中看到它们. 对我来说,放置虚拟环境的明确选择是/ opt,因为这个位置是reserved for the installation of add-on software packages. 但是,在大多数Linux发行版中,只有root可以写入/ opt,这使得这个选项很糟糕,因为虚拟环境的主要目标之一是避免成为root用户. 因此,我建议使用/usr/local(如果它可由您的普通用户帐户写入) – 但在主目录中安装它没有任何问题.
我不确定您所使用的“数据文件”是什么意思,但以下是虚拟环境的规则: >不要将它们放在源代码管理中. 鉴于上述情况,您应该将虚拟环境与源代码分开.
静态资产不是动态文件,我认为你的条款令人困惑. 无论哪种方式,您都应该执行以下操作: >创建用户帐户以运行该应用程序. 最后,我不能强调这足以记录您的过程和自动化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |