Summary: | load_entry_point загружает бинарники из /usr/bin | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly Lipatov <lav> |
Component: | python3-module-pkg_resources | Assignee: | Stanislav Levin <slev> |
Status: | CLOSED NOTABUG | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | antohami, cas, cow, evg, george, grenka, imz, kotopesutility, lav, nbr, qa_viy, rider, sem, shaba, sin, slev, toni, vitty, viy |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux |
Description
Vitaly Lipatov
2021-07-07 02:04:36 MSK
Механизм entrypoints от setuptools здесь ни при чем. Это ожидаемое поведение Python: https://docs.python.org/3/tutorial/modules.html#the-module-search-path То есть директория, содержащая входящий скрипт, - это '/usr/bin'. Например, ```console [root@localhost .in]# cat /usr/bin/some_python_script #!/usr/bin/python3 import os import sys print(os.getcwd()) print(sys.path) [root@localhost .in]# /usr/bin/some_python_script /.in ['/usr/bin', '/usr/lib64/python39.zip', '/usr/lib64/python3.9', '/usr/lib64/python3.9/lib-dynload', '/usr/lib64/python3/site-packages', '/usr/lib/python3/site-packages'] ``` Существует режим "изоляции": ``` -I Run Python in isolated mode. This also implies -E and -s. In isolated mode sys.path contains neither the script's directory nor the user's site-packages directory. All PYTHON* environment variables are ignored, too. Further restrictions may be imposed to prevent the user from injecting malicious code. ``` Определение module в Python: > A module is a file containing Python definitions and statements. The file name is the module name with the suffix .py appended. На мой взгляд, не стоит помещать модули Python в '/usr/bin' в общем случае. (Ответ для Stanislav Levin на комментарий #1) ... > На мой взгляд, не стоит помещать модули Python в '/usr/bin' в общем случае. Правильно ли я понимаю, что в нашем случае это означает, что в /usr/bin не должно быть файлов *.py ? (Ответ для Vitaly Lipatov на комментарий #2) > (Ответ для Stanislav Levin на комментарий #1) > ... > > На мой взгляд, не стоит помещать модули Python в '/usr/bin' в общем случае. > Правильно ли я понимаю, что в нашем случае это означает, > что в /usr/bin не должно быть файлов *.py ? Такого ограничения нет. Чтобы не шарахаться от всех неожиданных импортов, существует режим изоляции. |