Python打包问题:没有名为steamcloud的模块

Python打包问题:没有名为steamcloud的模块,python,python-2.7,Python,Python 2.7,附件是一个zip文件,其中包含我遇到问题的文件: 基本上我有三个子目录:airship,airship.icloud,和airship.steamcloud。每个文件都有一个setup.py文件和一个airship子目录,以及包含正确文件的相应子目录,例如airship.icloud/airship/icloud/airship.icloud.py。我在这三个目录中运行了sudopip install-U.,并且pip list显示了所有三个安装的软件包。但是,当我尝试运行飞艇(进入飞艇/飞艇/

附件是一个zip文件,其中包含我遇到问题的文件:

基本上我有三个子目录:
airship
airship.icloud
,和
airship.steamcloud
。每个文件都有一个
setup.py
文件和一个
airship
子目录,以及包含正确文件的相应子目录,例如
airship.icloud/airship/icloud/airship.icloud.py
。我在这三个目录中运行了
sudopip install-U.
,并且
pip list
显示了所有三个安装的软件包。但是,当我尝试运行
飞艇
(进入
飞艇/飞艇/\uuu init\uuuu.py
)时,它无法导入
蒸汽云
包:

Traceback (most recent call last):
  File "/usr/local/bin/airship", line 9, in <module>
    load_entry_point('airship==1.1', 'console_scripts', 'airship')()
  File "/Library/Python/2.7/site-packages/airship/__init__.py", line 4, in main
    airship.sync()
  File "/Library/Python/2.7/site-packages/airship/airship.py", line 21, in sync
    module = importlib.import_module('.' + modulename, 'airship')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named steamcloud
try
语句用于说明用户可能没有安装相关的软件包,但已注释掉以进行调试,添加了print语句

我可以确认
/Library/Python/2.7/site packages/airship/steamcloud/airship.steamcloud.py
存在并具有正确的代码

iCloud模块加载正常,那么为什么Steam Cloud模块不正常呢


分支问题:有没有更好的方法来检查包是否已安装,而无需执行
尝试

您不应该在Python文件和目录的名称中添加点。这让人困惑

Python没有查找名为
/Library/Python/2.7/site packages/airship/steamcloud/airship.steamcloud.py
的文件。它正在寻找一个名为
/Library/Python/2.7/site packages/airship/steamcloud.py
的文件,如果我正确理解您的代码和错误的话

modules = {'steamcloud': None, 'icloud': None}
modulenum = 0

for modulename in modules:
    # try:
        module = importlib.import_module('.' + modulename, 'airship')
        if module.init():
            print(modulename + ' was imported')
            modules[modulename] = module
            modulenum += 1
    # except:
        # pass