Python `importlib`未使用/识别路径

Python `importlib`未使用/识别路径,python,path,python-module,python-importlib,Python,Path,Python Module,Python Importlib,我尝试在运行主python脚本时导入模块,使用较小的setup.py脚本。但是,命令:importlib.util.spec\u from\u file\u location(name,location)似乎没有检测到我的小python脚本。大概我没有正确填写名称或位置字段 示例脚本A(setup.py): 示例脚本B(my_Script.py): 运行上述代码段将返回: AttributeError: 'NoneType' object has no attribute 'loader' 我

我尝试在运行主python脚本时导入模块,使用较小的
setup.py
脚本。但是,命令:
importlib.util.spec\u from\u file\u location(name,location)
似乎没有检测到我的小python脚本。大概我没有正确填写
名称
位置
字段

示例脚本A
setup.py
):

示例脚本B
my_Script.py
):

运行上述代码段将返回:

AttributeError: 'NoneType' object has no attribute 'loader'
我随后通过运行
type(启动脚本)
进行了调查,结果是
typeNone

路径是正确的。我通过运行以下程序验证了这一点:

"/home/solebay/My Project Name/"
sudo python3 "/home/solebay/My Project Name/setup.py"
这些打印的消息
是一个目录
成功分别为



注意:成功地回答了我的主要问题,因此我已将其标记为正确。然而,我没有达到我的主要目标;即通过另一个脚本导入模块。因此,如果这是您的目标,这个问题可能不适合您。

从文件位置传递到规范位置的
参数必须是python脚本的完整路径:

import importlib.util
spec = importlib.util.spec_from_file_location(
    name='something__else',  # name is not related to the file, it's the module name!
    location='/tmp/solebay/My Project Name/setup.py'  # full path to the script
)
my_mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(my_mod)
print(my_mod)
输出:

成功!
"/home/solebay/My Project Name/"
sudo python3 "/home/solebay/My Project Name/setup.py"
import importlib.util
spec = importlib.util.spec_from_file_location(
    name='something__else',  # name is not related to the file, it's the module name!
    location='/tmp/solebay/My Project Name/setup.py'  # full path to the script
)
my_mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(my_mod)
print(my_mod)
success!
<module 'something__else' from '/tmp/solebay/My Project Name/setup.py'>