TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #303 · 27 дек.

Наверняка вы замечали, что в Python есть удобная функция для получения переменной окружения os.getenv(NAME) И её "сестра" для создания или изменения переменных окружения os.putenv(NAME, VALUE) Но почему-то putenv() не работает как должно. Энвайромент не обновляется! os.putenv('MYVAR', '1') print(os.getenv('MYVAR')) ... и ничего 😴 Почему так? На самом деле энвайромент обновляется, но это значение не добавляется в словарь os.environ. Откройте исходник функции os.getenv(). Это просто шорткат для os.environ.get() В то время как putenv() это built-in С-функция. Словарь os.environ (или точней класс из MutableMapping) создаётся из энвайромента в момент инициализации. Функция putenv() самостоятельно его не изменяет. В тоже время, когда вы создаёте или изменяете ключ в os.environ, автоматически вызывается putenv() в методе __setitem__(). То есть, технически putenv() всё делает верно, но в os.environ это не отражается. Можно проверить так: >>> os.putenv('MYVAR', '123') >>> os.system('python -c "import os;print(os.getenv(\'MYVAR\'))"') 123 Я объявил переменную в текущем процессе и вызвал дочерний процесс, который её унаследовал и получил в составе os.environ. Аналогично при удалении переменной вызывается еще одна built-in функция unsetenv(), удаляющая переменную из системы. Итого ▫️ Удобней всего явно обновлять переменные через os.environ ▫️ Есть способ неявно создать/удалить переменную через putenv/unsetenv, что не повлияет на os.environ но изменит энвайромент и передаст изменения сабпроцессам. Но так лучше не делать! ▫️os.environ это просто обертка для built-in функций putenv() и unsetenv(). #basic

Hashtags

Резултати

Пронајдени 3 слични објави

Пребарај: #posix

当前筛选 #posix清除筛选

#UNIX#POSIX 问题:如何正确理解 Permission denied 和 Operation not permitted 之间的区别? 答案: TL;DR: Permission denied: 老兄,你越界了,这个真不行。 Operation not premitted: 老兄,你在说什么鬼话? Permission denied 通常用于表示明确的因为权限设置导致的拒绝。 Operation not premitted 通常用于表示因为设计原因所不被允许的操作。 不过在实际的开发中,有的人似乎并不care这些,因此你也会见到因为权限策略拒绝时返回的 Operation not premitted 错误。(例如SELinux)

Hashtags

AIGC

@aigcrubbish · Post #84 · 06.11.2025 г., 16:21

Freedesktop.org now hosts the Filesystem Hierarchy Standard 文件系统层次结构标准(FHS)现已由Freedesktop.org托管和管理。FHS定义了POSIX操作系统如何组织系统和用户数据,被Linux、BSD及其他遵循POSIX规范的系统广泛采用。这一变动结束了此前关于FHS未来发展的讨论。 新规范页面可在此查看:https://specifications.freedesktop.org/fhs/latest/ #Linux#POSIX#文件系统标准#开源 #AIGC Read more

GitHub Trends

@githubtrending · Post #15246 · 24.10.2025 г., 13:30

#go#blob_storage#cloud_drive#distributed_file_system#distributed_storage#distributed_systems#erasure_coding#fuse#hadoop_hdfs#hdfs#kubernetes#object_storage#posix#replication#s3#s3_storage#seaweedfs#tiered_file_system SeaweedFS is a fast, simple, and highly scalable distributed file system designed to store billions of files and serve them quickly, especially small files. It uses a master server to manage volumes on volume servers, which handle file data and metadata, enabling very fast file access with minimal disk reads. It supports features like replication, erasure coding, cloud integration for elastic storage, and compatibility with many metadata stores and APIs including Amazon S3. This means you get efficient, cost-effective storage with fast access, easy scaling, and flexible deployment options for large-scale file storage needs. https://github.com/seaweedfs/seaweedfs