【发布时间】:2021-03-20 04:47:46
【问题描述】:
我正在尝试在运行我的主要 python 脚本时导入模块,使用较小的 setup.py 脚本。但是importlib 命令:importlib.util.spec_from_file_location(name, location) 似乎没有检测到我的小python 脚本。大概我没有正确填写name 或location 字段。
示例脚本 A (setup.py):
import os
import pandas as pd
print("success!") # So I can see it has run.
示例脚本 B (my_script.py):
import importlib
setup_path = ("/home/solebay/My Project Name/")
start_up_script = importlib.util.spec_from_file_location("setup.py", setup_path)
module = importlib.util.module_from_spec(start_up_script)
运行上面的 sn -p 返回:
AttributeError: 'NoneType' object has no attribute 'loader'
我随后通过运行type(start_up_script) 进行了调查,它给出的结果是typeNone。
路径正确。我通过运行以下命令验证了这一点:
"/home/solebay/My Project Name/"
sudo python3 "/home/solebay/My Project Name/setup.py"
这些分别打印了消息is a directory和success!。
注意: Maurice Meyer 成功回答了我的主要问题,因此我将其标记为正确。但是,我还没有实现我的主要目标;即通过另一个脚本导入模块。所以如果这是你的目标,这个问题可能不适合你。
【问题讨论】:
标签: python path python-module python-importlib