通常,我的python应用程序没有任何问题。 但是当我在Windows机器上运行它或尝试使用pycharm使用远程Python解释器从Windows机器开始调试会话时(不知道这个事实是否重要),在这些行的一些软件包中:
config_path = os.path.join(app_dir, 'config')
config_module = __import__(config_path, fromlist=['*'])
我收到错误(仅限Windows):
ImportError: Import by filename is not supported.
好的,然后我将此代码更改为:
config_module = imp.load_source('config', app_dir)
我得到一个空的config_module
模块。
那么,什么工作等同于__import__(config_path, fromlist=['*'])
?
Python 2.7.9
编辑1: 我试图导入的包是在fololowing结构:
<app root>
config
__init__.py
file1.py
file2.py
我想从另一个包中的代码(pyhton / site-packages / other_pacakge / ...中的某个地方)导入带有*的配置包。 据我了解,“从包导入*”意味着只需加载 init .py(如果没有定义所有,实际上没有)。
答案 0 :(得分:0)
试试这个:
path = os.path.abspath(path)
namespace = "config_module"
print('Importing:',path,'@',namespace)
loader = importlib.machinery.SourceFileLoader(namespace, path+'.py')
handle = loader.load_module(namespace)
print(handle)
这些类型的导入在很大程度上取决于您正在运行的Python版本,因此提供这些信息将有助于帮助您。