从python27中的文件夹导入模块

从python27中的文件夹导入模块,python,import,module,python-2.7,directory,Python,Import,Module,Python 2.7,Directory,这听起来很可笑,因为在这个网站上对这个问题的回答数量似乎是无限的——但如果不临时更改每次重新加载的系统路径(或init,这对我的设置不起作用),我就找不到一个简单的解决方案。我正在寻找一种安全的,非黑客的方式来完成这件事 简单地说,我的目录结构如下: **root** >main.py >**modules** >>rivescript.py >>js.py >**plugins** >>weather.py >>

这听起来很可笑,因为在这个网站上对这个问题的回答数量似乎是无限的——但如果不临时更改每次重新加载的系统路径(或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)

有什么建议吗?速度和资源消耗对这个项目来说是一件大事

首先,您应该在modules/和plugins/目录中放置_init__;.py文件(可能为空),将它们标记为包

现在,您可以在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

首先,您应该在modules/和plugins/目录中放置_init__;.py文件(可能为空),将它们标记为包

现在,您可以在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

非常感谢。非常好,谢谢!工作得很好。