lan*_*ng2 6 python cx-freeze python-3.5
我正在尝试cx_freeze使用该aiohttp软件包为使用Python 3编写的Web应用程序构建二进制dist .
基本上我做了:
cxfreeze server.py
Run Code Online (Sandbox Code Playgroud)
得到了一个dist输出
但是在运行./server二进制文件时,我收到以下消息:
File "/usr/local/lib/python3.5/dist-packages/cx_Freeze/initscripts/__startup__.py", line 12, in <module>
__import__(name + "__init__")
File "/usr/local/lib/python3.5/dist-packages/cx_Freeze/initscripts/Console.py", line 24, in <module>
exec(code, m.__dict__)
File "server.py", line 1, in <module>
File "/usr/local/lib/python3.5/dist-packages/aiohttp/__init__.py", line 10, in <module>
from .protocol import * # noqa
File "/usr/local/lib/python3.5/dist-packages/aiohttp/protocol.py", line 17, in <module>
from . import errors, hdrs
File "/usr/local/lib/python3.5/dist-packages/aiohttp/errors.py", line 3, in <module>
from asyncio import TimeoutError
File "/usr/lib/python3.5/asyncio/__init__.py", line 21, in <module>
from .base_events import *
File "/usr/lib/python3.5/asyncio/base_events.py", line 32, in <module>
from . import compat
ImportError: cannot import name 'compat'
Run Code Online (Sandbox Code Playgroud)
小智 16
希望你已经能够解决这个问题,但对于像我一样搜索这个问题的人,我会回答:
此compat模块是asynciocx_Freeze的一部分,而不是被cx_Freeze发现.我必须添加asyncio到选项中的packages列表中才能包含它:build_exesetup.py
setup(
...
options = {
'build_exe': {
'packages': ['encodings', 'asyncio']
},
}
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2825 次 |
| 最近记录: |