正在导入库中不存在的包.使用py2exe压缩

大家好,
使用Pythong 2.4和PY2EXE 0.6.6.因此,我创建了一个用于测试的WXPYTHON应用程序.这个想法是拥有一个测试目录,以便每次应用程序启动时,都会在目录中查看并将其看到的测试加载到运行时使用的列表中.因此,我在当地的机器上可以正常工作,但是现在我试图使其与PY2EXE合作.
我的问题是,如果我在py2exe中包含"测试"软件包

选择 | 换行 | 行号
  1. package=["tests"]

,我所有的测试都包含在我的Library.zip中.这有效,但是随后用户无法轻易创建自己的测试,并将应用程序被应用程序拾取,因为EXE必须每次使用测试才能再生.
因此,我可以告诉PY2EXE不要包含包装,而只需手动复制目录,但是当我尝试在主文件中导入软件包时,我会收到一个错误" attributeError:'module'对象没有属性blah ".在导入该软件包之前,我已经尝试在主文件中附加到sys.path,但这似乎不起作用.
因此,在py2exe中,是否有任何方法可以导入库中未包含的软件包?

# 回答1


您可以在下面使用Package_dir和py_modules的组合(我想在可分发文件中包含的软件包为../common/ [logfile,remotecmd和crc32])

选择 | 换行 | 行号
  1. setup(
  2.   zipfile = None,
  3.     # We use os.path.join for portability
  4.     package_dir = {'': os.path.join('..', 'Common')},
  5.     py_modules = ['logfile', 'remoteCmd', 'crc32'],
  6.     windows = [
  7.         {
  8.             "script": "MyTool.py",
  9.             "icon_resources": [(1, "MT.ico")],
  10.             "other_resources": [(24,1,manifest)]
  11.         }
  12.     ],
  13. )
  14.  
# 回答2


抱歉,但这似乎没有什么区别.我将测试目录添加为" package_dir",并将其添加为" py_modules",但是当我尝试启动该应用程序时,我仍然遇到相同的错误.如果我给出更多细节,我会在最后添加我的设置.
另一个复杂因素可能是我的目录结构.我的测试包实际包含几个子软件包.因此,我的__init__.py对测试看起来像这样.

选择 | 换行 | 行号
  1. __all__=["ANSI", "ETSI"]

然后有一个ANSI和ETSI目录,从那里,每个目录都有自己的子目录,并带有自己的__init__.py.当我尝试启动该应用程序时,它说" attributeError:'模块'对象没有属性'ansi'.因此,我认为PY2EXE中的路径有问题,因为测试在库中的方式不在.就像我说的那样,这一切都很好地解释了本地的python,但是在我的__init__.py中,我还必须做什么特别的事情吗?
完整设置.Py仅删除个人信息

选择 | 换行 | 行号
  1. from distutils.core import setup
  2. import py2exe
  3. import os
  4. import sys
  5.  
  6. setup(name="isupConformance",
  7.       options = {"py2exe": {
  8.                           "compressed": 1,
  9.                           "optimize": 2,
  10.                           #"packages": ["tests"],
  11.                           "dll_excludes": ["w9xpopen.exe"],
  12.                           "ascii": 1,
  13.                           "bundle_files": 1,
  14.                       }},
  15.       #packages=["tests"],
  16.       package_dir = {'' : 'c:\\Python24\\Scripts\\Isup Conformance\\tests'},
  17.       py_modules=["GUI", "isupConfChassis", "isupConfSmta", "isupConfTest", "mgtsCtrl", "mgtsDevice", "sequence", "tests"],
  18.       windows=
  19.       [
  20.           {
  21.               "script": "gui.py",
  22.               "icon_resources": [(1, "wi0124-64.ico")],
  23.               "dest_base": "ISUP Conformance"
  24.           }
  25.       ],
  26.       )
# 回答3


有人知道如何导入py2exe库中未包含的软件包吗?有可能吗?

标签: python

添加新评论