【发布时间】:2014-09-09 15:44:37
【问题描述】:
我在 Windows Server 2012R2 上,尝试在 virtualenv 中使用 py2exe 编译脚本,每当其中一个应用程序脚本尝试“导入 distutils”时,我都会遇到问题(在我的情况下,它位于 3rd -party 库,但我在这里减少了问题)。
重现步骤:
-
创建一个虚拟环境
virtualenv venv call venv\Scripts\activate -
在 virtualenv 中安装 py2exe
easy_install --always-unzip py2exe-0.6.9.win64-py2.7.amd64.exe -
创建 setup.py
from distutils.core import setup try: import py2exe except: pass setup( console=[ 'py2exe_distutils.py' ] ) -
创建 py2exe_distutils.py
import distutils -
运行py2exe
python setup.py py2exe -
尝试运行生成的可执行文件
dist\py2exe_distutils.exe
返回:
C:\Users\root\p\dist\library.zip\distutils\__init__.py:14: UserWarning: The virtualenv distutils package at %s appears to be in the same location as the system distutils?
Traceback (most recent call last):
File "py2exe_distutils.py", line 6, in <module>
import distutils
File "distutils\__init__.pyc", line 25, in <module>
ImportError: cannot import name dist
当我直接运行脚本 (python py2exe_distutils.py) 时,脚本运行良好,即使在 virtualenv 中也是如此。
我是在尝试做 py2exe 不支持的事情,还是我的设置有问题?
【问题讨论】:
-
只有当您尝试从 virtualenv 编译时才会发生这种情况?我自己无法重现这种行为。不过,我认为我使用的 py2exe 版本比您的显示要新-您可以通过 svn over on sourceforge 获得最新版本。另外,您对
python setup.py py2exe的调用的输出是什么样的?
标签: python virtualenv py2exe distutils