我有一个使用名称空间包的模块/包结构,我有多个用户创建的库,这些库保存在不同的存储库中,它们有相当通用的名称,如db、io、utils等等。为了避免与其他包冲突,我有一个名为acme的顶级/命名空间包,即我的包是顶点.io, 顶点.db, 顶点.utils等等。为了实现这一点,所有acme文件夹中的uinit_uy.py包含以下行
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
当运行使用python中的这些包的软件时,这种方法非常有效。在
但是我试着用pyinstaller制作一个EXE。pyinstaller只找到其中一个包。pathex试图将这些库驻留在以下位置:
^{pr2}$在dbrepo、iorepo和utilsrepo文件夹中,有一个名为acme的文件夹,其中包含上述的yu init_u.py文件和相应的包,即db、utils和io,其中又有一个u init_uuy文件。在
但是pyinstaller只找到acme和顶点.db包裹。或者只查找路径在pathex变量中首先列出的包。在
有什么建议可以让我做这个吗?在
谢谢
我也有同样的问题。查找这个:http://pythonhosted.org/PyInstaller/#extending-the-path并在我的构建批处理文件调用中添加了一些
paths
。在就像:
干杯!在
Pyinstaller 2.1不支持命名空间包,它将在以后的版本中受支持。在
我使用的解决方案是,在我的构建脚本中,临时将libs复制到一个公共acme文件夹中,并将此路径添加到分析中的pathex。在*nix系统上,可以创建符号链接,而不是复制回购。感谢Pyinstaller团队的hartmutgoebel澄清了这个问题。在
相关问题 更多 >
编程相关推荐