cxFreeze和Jaraco:进口

2024-06-01 09:26:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用irclib库创建一个IRC客户机。但是,当我尝试使用cxFreeze冻结脚本时,总是会遇到这样的错误:

Traceback (most recent call last):
  File "C:\python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>
    exec(code, m.__dict__)
  File "client.py", line 38, in <module>
ImportError: No module named jaraco

在设置.py脚本已被多次修改,以尝试包含文件、包等。似乎什么都不管用。以下是当前版本供参考:

^{pr2}$

客户机的脚本可以在一行中缩短:

from irc import client

仅此而已。我没有用Jaraco,irclib(包irc)是。Jaraco必须作为irclib的依赖项安装。在

我试着找出它发生的原因,但到目前为止,什么也没找到。在

谢谢你的帮助!在


Tags: inpy脚本client客户机irc错误line
1条回答
网友
1楼 · 发布于 2024-06-01 09:26:38

好吧,经过一番挖掘之后,zope在用twisted冻结应用程序时似乎也存在同样的问题。虽然我没有用jaraco测试过,但我认为这是同一个问题。我希望这个解决方案能为那些遇到同样问题的用户起作用:

  1. 在“site packages”目录的“jaraco”包中,添加“init.py”文件。它可以是空的。为什么不提供,我不知道。对于cxFreeze,没有'init.py“的包不是包。在
  2. 重新运行'设置.py'脚本。不要将“jaraco”作为一个包,提供需要它的包(这里,它将是“irc”)。在

这是设置.py脚本:

from cx_Freeze import setup, Executable

client = Executable(
    script="client.py",
    base="Win32GUI",
)

setup(
    name = "client",
    version = "0.2",
    description = "client",
    options = {'build_exe': {'packages': ["irc"]}},
    executables = [client],
)

我提供这个答案是因为它和twisted和zope配合得很好。看到我的客户使用twisted now进行IRC通信,我不知道下面提供的步骤是否有效,但这正是twisted帮助我的原因。在

相关问题 更多 >