从 python3.2 项目运行 cxfreeze 二进制文件时,出现以下运行时错误:
/project/dist/project/distutils/__init__.py:13: UserWarning: The virtualenv distutils package at %s appears to be in the same location as the system distutils?
Traceback (most recent call last):
File "/home/chrish/.virtualenvs/project/lib/python3.2/distutils/__init__.py", line 19, in <module>
import dist
ImportError: No module named dist
distutils
相应地,在 cxfreeze 输出的缺失模块部分中有几个条目:
? dist imported from distutils
? distutils.ccompiler imported from numpy.distutils.ccompiler
? distutils.cmd imported from setuptools.dist
? distutils.command.build_ext imported from distutils
? distutils.core imported from numpy.distutils.core
...
我尝试通过将 distutils 导入到我的主 python 文件中并将其添加到 cxfreeze 中来强制将 distutils 作为模块包含在内setup.py
:
options = {"build_exe": {"packages" : ["distutils"]} },
两种方法都不起作用。似乎我以某种方式破坏了 virtualenv [因为 distutils 似乎很重要,并且关于 distutils 位置的警告],重复使用干净的 virtualenv 复制了问题。
值得注意的是,我通过运行安装了 cx-freeze,$VIRTUAL_ENV/build/cx-freeze/setup.py install
因为它没有在 pip 中干净地安装。