这听起来很荒谬,因为在这个网站上对这个问题似乎有无限数量的回复 - 但是我没有找到一个简单的解决方案而不会暂时改变每次重新加载的系统路径(或 init ,这对我的设置不起作用)。我正在寻找一种安全,非黑客的方式来完成这项工作。
简单地说 - 我的目录结构如下:
**root**
>main.py
>**modules**
>>rivescript.py
>>js.py
>**plugins**
>>weather.py
>>synd.py
为了简单起见,我想在main.py本地导入所提供的子目录(模块,插件)中的每个可用模块
伪:
#main.py
import "./modules/*.py" as modules_*
import "./plugins/*.py" as plugins_*
能够将函数称为:
plugins_weather.get("3088")
modules_rivescript.RiveScript.reply("localuser", language_input)
有什么建议吗?速度和资源消耗对于这个项目来说是一件大事。
答案 0 :(得分:1)
首先,你应该把__init__.py文件(可能是空的)放在modules /和plugins /目录中,把它们标记为包。
现在,您可以在main.py中导入模块:
import modules.js as js
import modules.rivescript as rivescript
import plugins.weather as weather
import plugins.synd as synd
weather.get("3088") # Usage example