cxFreeze 和 Jaraco:导入错误
cxFreeze and Jaraco: ImportError
我正在尝试使用 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
setup.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': {'includes': ["jaraco"], "packages": ["jaraco"]}},
executables = [client],
)
客户端的脚本可以单行缩短:
from irc import client
就是这样。我没有使用 Jaraco,irclib(包 irc)是。 Jaraco 必须作为 irclib 的依赖项安装。
我试图找到它可能发生的原因,但到目前为止,什么也没找到。
感谢您的帮助!
好吧,经过一番深入研究,zope 在使用 twisted 冻结应用程序时似乎也存在同样的问题。虽然我没有用 jaraco 测试过它,但我想它是同一个问题。我希望这个解决方案适用于遇到同样问题的用户:
- 在您的 'site-packages' 目录中,在 'jaraco' 包中,添加 'init.py' 文件。它可以是空的。为什么没有提供,我不知道。对于 cxFreeze,没有 'init.py" 的包不是包。
- 重新运行 'setup.py'脚本。不要将 'jaraco' 作为包包含,提供需要它的包(这里是 'irc')。
这是 setup.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 进行 IRC 通信,我不知道下面提供的步骤是否有效,但这就是帮助我进行 twisted 的原因。
HTH,
我正在尝试使用 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
setup.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': {'includes': ["jaraco"], "packages": ["jaraco"]}},
executables = [client],
)
客户端的脚本可以单行缩短:
from irc import client
就是这样。我没有使用 Jaraco,irclib(包 irc)是。 Jaraco 必须作为 irclib 的依赖项安装。
我试图找到它可能发生的原因,但到目前为止,什么也没找到。
感谢您的帮助!
好吧,经过一番深入研究,zope 在使用 twisted 冻结应用程序时似乎也存在同样的问题。虽然我没有用 jaraco 测试过它,但我想它是同一个问题。我希望这个解决方案适用于遇到同样问题的用户:
- 在您的 'site-packages' 目录中,在 'jaraco' 包中,添加 'init.py' 文件。它可以是空的。为什么没有提供,我不知道。对于 cxFreeze,没有 'init.py" 的包不是包。
- 重新运行 'setup.py'脚本。不要将 'jaraco' 作为包包含,提供需要它的包(这里是 'irc')。
这是 setup.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 进行 IRC 通信,我不知道下面提供的步骤是否有效,但这就是帮助我进行 twisted 的原因。
HTH,