py2exe不适用于标准电子邮件模块
你好.我试图使用py2exe将脚本转换为exe.构建过程显示:
似乎缺少以下模块
可执行文件不起作用.引用的模块不包括在内.我在互联网上研究了这个,我发现py2exe在标准的lib电子邮件模块中使用的Lazy导入有问题.不幸的是,我没有成功找到解决此问题的方法.有人可以帮忙吗?
谢谢,
脚本中的PS Imports如下所示:
代码:从电子邮件中选择所有导入字符串,时间,sys,os,smtplib.MIMEMultipart从email.MIMEBase导入MIMBultipart从email.MIMEText导入MIMEBase从电子邮件导入编码器导入MIMEText
即使是使用win32file的简单脚本,我也无法使py2exe正确打包我不断收到以下错误消息:
Traceback (most recent call last):
File "dependency_checker.py", line 1, in <module>
File "win32file.pyc", line 12, in <module>
File "win32file.pyc", line 10, in __load
ImportError: DLL load failed: The specified procedure could not be found.
Run Code Online (Sandbox Code Playgroud)
该脚本如下所示:
import win32file
print "Hello world!"
Run Code Online (Sandbox Code Playgroud)
这是setup.py:
from distutils.core import setup
import py2exe
setup(console=['dependency_checker.py'])
Run Code Online (Sandbox Code Playgroud)
你之前有类似的问题吗?
版本:
Python 2.6.2,py2exe 0.6.9,pywin32-214,Windows 7和Windows XP Pro作为目标机器
更新:
win32file.pyc抛出错误的部分如下所示:
>>> imp.load_dynamic('win32file', r'C:\test\setup-test\src\dist\win32file.pyd')
Run Code Online (Sandbox Code Playgroud)我的开发框(Windows 7)上面的行正确运行,而在测试框(Windows XP)上返回错误.
**更新2:**
当我使用imp.load_dynamic加载win32file表单python安装时,我可以为dist文件夹重新加载win32file.pyd而不会出错.
我是一名新手,在BASIC,Python以及所有东西,汇编程序(作为视频游戏ROM黑客的一部分)中写作方面有一点经验.我想创建一个小工具,用于修改特定文件中具有GUI界面的特定点的十六进制值.
我正在寻找的是创建小型GUI程序的能力,我可以将其作为EXE(或者至少是一个独立的目录)进行分发.我并不热衷于.NET语言的想法,因为我不想强迫人们下载庞大的.NET框架包.我目前使用IDLE和Boa Constructor设置Python,应用程序在那里运行.我试过在编译Python应用程序,它依赖于wxWidgets的查找信息,但我发现在搜索结果和信息一直扑朔迷离,或只是完全不知所云.
我的问题是:
感谢您的时间,
JBMK
有几个实用程序 - 都具有不同的过程,限制和目标操作系统 - 用于获取Python包及其所有依赖项,并将它们转换为易于发送给客户的单个二进制程序:
我的情况更进一步:第三方开发人员希望为我的应用程序编写插件,扩展或附加组件.当然,一个令人生畏的问题是,像Windows这样的平台上的用户最容易安装插件或插件,以便我的应用程序可以轻松发现它们已经安装.但除此基本问题之外还有另外一个问题:第三方开发人员如何将扩展与扩展本身需要的任何库(可能是二进制模块,如lxml)捆绑在一起,以便插件的依赖关系可以在同一时间导入插件可用的时间.
怎么能接近这个?我的应用程序是否需要在磁盘上使用自己的插件区域以及自己的插件注册表来使其易于处理?或者是否有一些通用机制,我可以避免自己编写,这将允许作为单个可执行文件分发的应用程序环顾四周并找到也作为单个文件安装的插件?
我正在尝试使用py2exe-0.6.9.win32来包装我在Python2.6.5中编写的应用程序,使用以下对象库和相关的下载文件名:
matplotlib-0.99.3.win32
SciPy的-0.8.0b1-Win32的
wxPython2.8-Win32的Unicode的2.8.11.0
我尝试启动生成的.exe文件时收到错误消息.目前,错误消息与numpy有关,但在此之前我得到了与matplot lib数据文件无关的内容,因此阻止了我的exe文件的启动.
而不是发布一英里的代码和所有错误消息,我发布了一个更普遍的问题:任何人都可以向我展示一些说明,使用py2exe创建一个工作的exe文件,使所有这些对象库和版本一起发挥得很好吗?
我一直在阅读有关该主题的谷歌搜索的事情,但似乎是一个疯狂的追逐,因为每个人都在使用不同版本的不同东西.我可以更改一些这些对象库的某些版本,如果这有所不同,但我已经在这个信号处理应用程序中编写了5,000行代码,我宁愿不必重写所有这些代码库,如果可能.
编辑:
这是我在一个名为GUIdiagnostics.py的文件中的代码的简化版本,我用它来测试我的py2exe脚本导入我在实际应用程序中需要的所有库的能力:
import time
import wxversion
import wx
import csv
import os
import pylab as p
from scipy import stats
import math
from matplotlib import *
from numpy import *
from pylab import *
import scipy.signal as signal
import scipy.optimize
import Tkinter
ID_EXIT = 130
class MainWindow(wx.Frame):
def __init__(self, parent,id,title):
wx.Frame.__init__(self,parent,wx.ID_ANY,title, size = (500,500), style = wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
# A button
self.button =wx.Button(self, label="Click Here", pos=(160, 120))
self.Bind(wx.EVT_BUTTON,self.OnClick,self.button)
# …Run Code Online (Sandbox Code Playgroud) 我在Windows 7上使用Python 2.6,我正在尝试使用多进程:
p = Process(target=f, args=(SOME_ARGS))
p.start()
p.join()
Run Code Online (Sandbox Code Playgroud)
我从CMD运行代码(使用解释器)一切正常,但在我用py2exe创建一个exe文件后,进程的执行失败,出现以下错误:
错误:没有这样的选项:--multiprocessing-fork
我发现的所有解决方案都无济于事.有任何想法吗?
我有一个Python脚本,我在Windows(Python 2.7)的virtualenv中开发.
我现在想用Py2exe将它编译成单个EXE.
我已经阅读并阅读了文档和stackoverflow,但我找不到一个简单的答案:我该怎么做?我尝试安装py2exe(通过可下载的安装程序),但当然这不起作用,因为它使用系统级python,它没有安装我的脚本的依赖项.它需要使用virtualenv - 但似乎没有这样的选择.
我确实设法让bbfreeze工作,但它输出一个塞满文件的dist文件夹,我只想要一个简单的EXE文件(一个文件)用于我的简单脚本,我知道Py2Exe可以做到这一点.
tl; dr:如何在virtualenv的上下文中运行Py2Exe,以便正确导入依赖项?
py2exe在我的Python程序上使用时,我得到一个可执行文件,但也是一个tcl\文件夹.
这很奇怪,因为我根本不使用tcl/tk,而且tkinter在我的代码中没有任何相关内容.
为什么导入numpy负责添加此tcl\文件夹?如何防止这种情况发生?
test.py
import numpy
print 'hello'
Run Code Online (Sandbox Code Playgroud)
PY2EXE代码
from distutils.core import setup
import py2exe
setup(script_args = ['py2exe'], windows=[{'script':'test.py'}], options = {'py2exe': {'compressed':1,'bundle_files': 1}}, zipfile = None)
Run Code Online (Sandbox Code Playgroud) 是否有一个用于64位python 2.7的py2exe 64位的pip安装?32位py2exe对我不起作用,但是当我尝试安装64位版本时,我一直遇到异常.我从这个站点下载了python 2.7的64位py2exe:http://www.lfd.uci.edu/~gohlke/pythonlibs/#py2exe但是无法安装它
我使用python -m pip install py2exe得到的错误:
Runtime Error: This package requires Python 3.3 or later
Command "python setup.py egg_info" failed with error code 1
Run Code Online (Sandbox Code Playgroud)
注意:以下适用于32位,但我需要64位
pip install http://sourceforge.net/projects/py2exe/files/latest/download?source=files
Run Code Online (Sandbox Code Playgroud)
我正在运行64位python 2.7,我正在尝试安装64位py2exe
任何简单的pip安装吗?
运行Py2Exe时接收以下内容:
running py2exe
12 missing Modules
------------------
? Image imported from openpyxl.drawing.image
? PIL._imagingagg imported from PIL.ImageDraw
? PyQt5 imported from PIL.ImageQt
? PySide imported from PIL.ImageQt
? _abcoll imported from openpyxl.compat.odict
? _imaging_gif imported from PIL.GifImagePlugin
? _util imported from PIL.ImageCms
? cffi imported from PIL.Image, PIL.PyAccess
? lxml imported from openpyxl.xml, openpyxl.xml.functions
? openpyxl.tests imported from openpyxl.reader.excel
? readline imported from cmd, code, pdb
? tkinter imported from PIL.ImageTk
Building 'dist\dlpreport.exe'.
error: [Errno 2] No such file or …Run Code Online (Sandbox Code Playgroud) py2exe ×10
python ×9
numpy ×2
executable ×1
matplotlib ×1
py2app ×1
pyinstaller ×1
python-2.6 ×1
python-2.7 ×1
python-3.x ×1
pywin32 ×1
scipy ×1
tkinter ×1
winapi ×1
windows ×1
wxwidgets ×1