distutils.spawn 不可用,除非导入
distutils.spawn not available unless imported
我安装了 distutils
,它在某些情况下可以正常工作。但是,当尝试使用子模块时,除非我明确导入它,否则它不会导入。
$ python
Python 3.8.5 (default, Jul 21 2020, 10:42:08)
[Clang 11.0.0 (clang-1100.0.33.17)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import distutils
>>> distutils.spawn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'distutils' has no attribute 'spawn'
>>> from distutils import spawn
>>> distutils.spawn
<module 'distutils.spawn' from '/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/distutils/spawn.py'>
我在 Mac 并尝试过在 venv 内部和外部。我有一个调用 distutils.spawn.find_executable('python3')
的依赖项,但它不工作。
这很正常。这就是 Python import 的工作原理。除非 distutils/__init__.py
导入 .spawn
本身(它不会这样做),否则您必须自己导入它才能使其可用。仅导入 distutils
不足以访问子模块。
反例:import os
使 os.path
自动可用,但那是因为 os.py
makes it available 适合你。
我安装了 distutils
,它在某些情况下可以正常工作。但是,当尝试使用子模块时,除非我明确导入它,否则它不会导入。
$ python
Python 3.8.5 (default, Jul 21 2020, 10:42:08)
[Clang 11.0.0 (clang-1100.0.33.17)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import distutils
>>> distutils.spawn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'distutils' has no attribute 'spawn'
>>> from distutils import spawn
>>> distutils.spawn
<module 'distutils.spawn' from '/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/distutils/spawn.py'>
我在 Mac 并尝试过在 venv 内部和外部。我有一个调用 distutils.spawn.find_executable('python3')
的依赖项,但它不工作。
这很正常。这就是 Python import 的工作原理。除非 distutils/__init__.py
导入 .spawn
本身(它不会这样做),否则您必须自己导入它才能使其可用。仅导入 distutils
不足以访问子模块。
反例:import os
使 os.path
自动可用,但那是因为 os.py
makes it available 适合你。