有没有办法阻止脚本的目录被添加到python3中的sys.path?由于导入在 python 中是相对的,因此我遇到了导入冲突。我正在处理的一个遗留项目有一个名为logger.py
在与内置冲突的脚本的根目录中logger
.
我使用的自定义构建系统最终会创建指向所有文件和依赖项的符号链接,并且在生产中,在运行时我们使用-E
忽略任何系统设置的标志PYTHONPATH
并设置我们想要的路径。但由于这种冲突,从 PyCharm 运行测试/脚本不起作用。
The -I隔离模式选项 https://docs.python.org/3/using/cmdline.html#cmdoption-I was Python 3.4 中添加 https://docs.python.org/3/whatsnew/3.4.html#whatsnew-isolated-mode。在隔离模式下,脚本目录不会添加到sys.path
,但还有其他限制,例如忽略用户的 site-packages 目录(-s
选项),以及所有PYTHON*
环境变量 (-E
选项)。
Python 3.11 有一个-P option https://docs.python.org/3.11/using/cmdline.html#cmdoption-P and a PYTHONSAFEPATH https://docs.python.org/3.11/using/cmdline.html#envvar-PYTHONSAFEPATH变量,防止在脚本目录或其他可能不安全的路径前面添加sys.path
.
在 Windows 中._pth file https://docs.python.org/3/using/windows.html#finding-modules可以用来完全覆盖sys.path
并激活隔离模式。该技术用于Windows 嵌入式包 https://docs.python.org/3/using/windows.html#windows-embeddable.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)