Python 从全局glass和本地类使用本地导入时避免try-catch

Python 从全局glass和本地类使用本地导入时避免try-catch,python,package,Python,Package,我有以下全局包结构: - ML-global-package: - globalclass: - init.py - setup.py - globalclass: - init.py - data_uploader.py - do_something_and_upload.py 请注意,我正在打包globalclass,并在其他包中

我有以下全局包结构:

- ML-global-package:
   - globalclass:
         - init.py
         - setup.py
         - globalclass:
                 - init.py
                 - data_uploader.py
                 - do_something_and_upload.py
请注意,我正在打包
globalclass
,并在其他包中使用它

在全局包中,我将从
data\u uploader.py
模块导入
do\u something\u and\u upload.py
a
data\u uploader

为了从
globalclass
我把它作为

from data_uploader import data_uploader
但为了在其他软件包中工作,我需要以下导入:

从globalclass.data\u uploader导入数据\u uploader

因此,目前我的
do\u something\u和\u upload.py
如下所示:

try:
   from data_uploader import data_uploader
except:
   from globalclass.data_uploader import data_uploader

这显然是一个糟糕的解决方案,我如何才能做得更好?

这里有多种方法:

  • 每次都从相同的目录运行代码-这将使用相同的路径
  • 手动设置PYTHONPATH-错误做法
  • 为应用程序使用单个入口点-使用
    python-m

  • 谢谢请记住,我将在无服务器环境中使用这两个包,并且这两个包都将安装在我无权访问文件系统的服务器中