__init__.py中断pyinstaller时如何正确导入文件

时间:2019-01-03 21:59:36

标签: python python-3.x python-import pyinstaller

我正在处理pyinstaller的问题,而解决此问题的方法是从树中删除空的__init__.py文件,因此我不再拥有该文件,一切正常预期。但是,现在我要添加更多文件,并且具有不同的文件夹结构:

dist
|
+--- rating_service.exe  # created by pyinstaller
service
|
+--- rating_service.py
shared
|
+--- resource_globals.py

在rating_service.py内,我尝试了这些导入并得到了以下错误:

from . import shared
  

ImportError:无法导入“共享”名称

from .. import shared
  

ValueError:尝试了相对顶级包之外的商品的导入

import shared
  

ModuleNotFoundError:没有名为“共享”的模块

如何访问resource_globals中的rating_service内容?

1 个答案:

答案 0 :(得分:2)

如果添加任何__init__.py文件是不可行的,那么可以在rating_service.py代码文件中进行解决:

# -----------------
# rating_service.py
# -----------------
import os
import sys

# Manually add the 'shared' directory to the python search paths
file_dir = os.path.dirname(os.path.realpath(__file__))
shared_dir = os.path.join(file_dir, '../shared')
sys.path.insert(0, shared_dir)

import resource_globals