我对Python一般都很陌生,但我在Python 2.6/wxPython 2.8中创建了一个应用程序,当我通过Python运行时它非常有效.但我想更进一步,并能够将其部署为Windows可执行文件,所以我一直在尝试py2exe.但是我无法让它发挥作用.它总是会编译一个exe,但是当我真的尝试运行它时会发出一些神秘的错误消息.起初他们是简单的消息,说它找不到某些DLL,但即使给它所需的所有DLL,它现在返回:
The application failed to initialize properly (0xc0000142).
Click OK to terminate the application.
Run Code Online (Sandbox Code Playgroud)
所以我打破了局面,只是用wxPython制作了一个非常非常简单的应用程序,看看它是否有用,或者我的原始应用程序的一些更复杂的功能是否会妨碍.但即便是我的简单测试也返回了相同的错误.这是简单测试脚本的代码:
import wx
class MainWindow(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, wx.ID_ANY, title, style=wx.DEFAULT_FRAME_STYLE ^ wx.MAXIMIZE_BOX)
panel = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL | wx.CLIP_CHILDREN | wx.FULL_REPAINT_ON_RESIZE)
main_sizer = wx.BoxSizer(wx.VERTICAL)
testtxt = wx.StaticText(panel, -1, label='This is a test!')
main_sizer.Add(testtxt, 0, wx.ALIGN_CENTER)
panel.SetSizerAndFit(main_sizer)
self.Show(1)
return
app = wx.PySimpleApp()
frame = MainWindow(None, -1, 'Test App')
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)
这是我使用的py2exe安装脚本:
#!/usr/bin/python
from distutils.core import setup
import py2exe
manifest …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用py2exe来分发我编写的python应用程序.一切似乎都没问题,但是当我在另一台机器上运行时它失败并出现以下错误:
Traceback (most recent call last):
File "application.py", line 12, in <module>
File "win32api.pyc", line 12, in <module>
File "win32api.pyc", line 10, in __load
ImportError: DLL load failed: The specified procedure could not be found.
Run Code Online (Sandbox Code Playgroud)
我搜索了这个并没有找到很多,但尝试了以下建议无济于事:
在win32api之前导入pywintypes和pythoncom(在py2exe的setup.py和主应用程序中)在setup.py中添加了一些代码 -
# ModuleFinder can't handle runtime changes to __path__, but win32com uses them
import pywintypes
import pythoncom
import win32api
try:
# if this doesn't work, try import modulefinder
import py2exe.mf as modulefinder
import win32com
for p in win32com.__path__[1:]:
modulefinder.AddPackagePath("win32com", p)
for extra in …Run Code Online (Sandbox Code Playgroud) 根据py2exe教程,我发现我需要MSVCR90.dll版本9.0.21022.8来运行python 2.6.我在哪里可以找到MSVCR90.dll版本9.0.21022.8?
我有一些Python代码正常工作它使用opencv一些简单的事情.例如
import cv2
x = cv2.imread('Dog6.jpg')
cv2.imwrite('new2.jpg')
Run Code Online (Sandbox Code Playgroud)
setup.py是
from distutils.core import setup
import py2exe
import cv2
setup(console=['name.py'])
Run Code Online (Sandbox Code Playgroud)
但我无法使用py2exe创建此代码的exe.是否有另一种方法来创建这样的程序的exe?
错误是ImportError:numpy.core.multiarray无法导入
我有一个tkinter正在编译为.exevia 的应用程序py2exe。
在安装文件中,我将其设置为包含lxml、urllib、lxml.html、ast和math。
当我python setup.py py2exe在 CMD 控制台中运行时,它编译得很好。然后我转到dist它创建的文件夹,并运行该.exe文件。
当我运行时,.exe我得到这个弹出窗口。
(来源:gyazo.com)
然后我继续打开该Trader.exe.log文件,内容如下:
Traceback (most recent call last):
File "Trader.py", line 1, in <module>
File "lxml\html\__init__.pyc", line 42, in <module>
File "lxml\etree.pyc", line 12, in <module>
File "lxml\etree.pyc", line 10, in __load
File "lxml.etree.pyx", line 84, in init lxml.etree (src\lxml\lxml.etree.c:190292)
ImportError: cannot import name …Run Code Online (Sandbox Code Playgroud) 我正在使用Py2exe从我的Python脚本创建一个Windows .exe.我想拥有版权信息以及产品版本,描述等.我已经能够显示所有内容(在属性> exe的详细信息中),版权信息除外.我试过以下但没有成功:
from distutils.core import setup
import py2exe
import sys
if len(sys.argv) == 1:
sys.argv.append("py2exe")
sys.argv.append("-q")
class Target:
def __init__(self, **kw):
self.__dict__.update(kw)
# for the versioninfo resources
self.version = "1.0.0.0"
self.company_name = "ACME."
self.copyright = "Copyright (c) 2014 ACME."
self.name = "My Program"
# create an instance of class Target
# and give it additional needed info
target = Target(
description = "Test Description",
# this is your code file
script = "Main.py",
# this will form TestProgram.exe
dest_base …Run Code Online (Sandbox Code Playgroud) 我试图py2exe在Python中使用exe .当我导入时,py2exe我收到这样的错误:
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import py2exe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\py2exe-0.9.2.0-py2.7-win32.egg\py2exe\__init__.py", line 9, in <module>
patch_distutils()
File "C:\Python27\lib\site-packages\py2exe-0.9.2.0-py2.7-win32.egg\py2exe\patch_distutils.py", line 68, in patch_distutils
from . import distutils_buildexe
File "C:\Python27\lib\site-packages\py2exe-0.9.2.0-py2.7-win32.egg\py2exe\distutils_buildexe.py", line 91, in <module>
from . import runtime
File "C:\Python27\lib\site-packages\py2exe-0.9.2.0-py2.7-win32.egg\py2exe\runtime.py", line 3, in <module>
from .dllfinder import Scanner, …Run Code Online (Sandbox Code Playgroud) 正如标题所说,当我尝试使用py2exe创建Windows可执行文件时,我收到此错误:
The following modules appear to be missing
['Carbon', 'Carbon.Files', 'ElementC14N', 'OpenSSL.SSL', '_frozen_importlib', '_imp', '_scproxy', '_sysconfigdata', 'backports.ssl_match_hostname', 'builtins', 'certifi', 'charade.universaldetector', 'configparser', 'datrie', 'genshi.core', 'html', 'html.entities', 'html.parser', 'http', 'http.client', 'http.cookies', 'http.server', 'importlib.machinery', 'importlib.util', 'ipaddr', 'ipaddress', 'java', 'lzma', 'ndg.httpsclient.ssl_peer_verification', 'ndg.httpsclient.subj_alt_name', 'netbios', 'ordereddict', 'org.python.modules.posix.PosixModule', 'packages.six.moves', 'packages.ssl_match_hostname.CertificateError', 'packages.ssl_match_hostname.match_hostname', 'packages.urllib3.util.Timeout', 'packages.urllib3.util.parse_url', 'packaging.specifiers', 'packaging.version', 'parsers.process', 'pip._vendor.six.moves.urllib', 'pyasn1.codec.der', 'pyasn1.type', 'queue', 'redis', 'reprlib', 'serializer.serialize', 'setuptools_svn', 'simplejson', 'sitecustomize', 'treebuilders.getTreeBuilder', 'treewalkers.getTreeWalker', 'trie.Trie', 'urllib.error', 'urllib.parse', 'urllib.request', 'urllib3', 'usercustomize', 'win32com.client.gencache', 'win32evtlog', 'win32evtlogutil', 'win32pipe', 'win32wnet', 'wincertstore', 'winreg', 'xmlrpc.client']
*** binary dependencies ***
Your …Run Code Online (Sandbox Code Playgroud) 我有一个正在处理的 django 项目(使用 Python 3.6 的 64 位 Ubunu),我需要将它编译成一个 exe,Windows(32 位和 64 位)用户可以localhost通过他们的浏览器运行和通过。对于我的项目,我需要导入常用包,例如numpy, pandas, matplotlib. 这可能吗?
从我到目前为止所发现的情况来看,我遇到的每个工具都因某种原因而不起作用:
我有一个使用Python click包的命令行程序.我可以在本地安装和运行它,没问题:
pip install --editable . # (or leave out the editable of course)
Run Code Online (Sandbox Code Playgroud)
现在,我想创建一个可以独立分发和运行的可执行文件.通常情况下,因为我在Windows环境中的时候,我会用一个py2exe,pyinstaller或cx_Freeze.但是,这些包都不起作用.
更具体地说,它们都生成可执行文件,但可执行文件什么都不做.我怀疑这个问题是因为我的main.py脚本没有main功能.任何建议都会非常有用,提前谢谢!
可以使用从此处复制的代码重现问题.
hello.py
import click
@click.command()
def cli():
click.echo("I AM WORKING")
Run Code Online (Sandbox Code Playgroud)
setup.py
from distutils.core import setup
import py2exe
setup(
name="hello",
version="0.1",
py_modules=['hello'],
install_requires=[
'Click'
],
entry_points="""
[console_scripts]
hello=hello:cli
""",
console=['hello.py']
)
Run Code Online (Sandbox Code Playgroud)
如果有人可以提供工作的setup.py文件来创建可执行文件和任何其他所需的文件,那将非常感激.
从控制台:
python setup.py py2exe
# A bunch of info, no errors
cd dist
hello.exe
# no output, should …Run Code Online (Sandbox Code Playgroud) py2exe ×10
python ×9
exe ×3
pyinstaller ×2
cx-freeze ×1
django ×1
executable ×1
importerror ×1
lxml ×1
lxml.html ×1
opencv ×1
python-2.7 ×1
python-click ×1
visual-c++ ×1
windows ×1
wxpython ×1