我一直在使用cx_Freeze一段时间,我有一件事我真的想做:将所有文件放入一个我可以分发的可执行文件中.发送一个包含30个文件的文件夹并不是真的用户友好,所有文件都在同一个目录中.我怎么能做到这一点?谢谢.
我使用cxfreeze从planrequest.py创建一个Windows可执行文件.它似乎工作正常,但是当我运行exe文件时,我得到了NameError: name 'exit' is not defined
在修复程序要使用的python状态中未定义name exitimport sys
.但是,我使用import sys.代码作为python脚本运行良好(例如,我在编译成可执行文件之前对命令行参数进行了广泛测试.)
import socket
import sys
if len(sys.argv) == 1:
print("Usage:")
print("PlanRequest [Request String] [Server IP (optional: assumes 127.0.0.1 if omitted)]")
exit()
#[do stuff with the request]
Run Code Online (Sandbox Code Playgroud) 如果可以,我在哪里可以下载_winreg for python3.我在E:\ Windows上有'windir'.我不知道cx_Freeze是否没有注意到这一点.我正在使用cx_Freeze创建一个msi安装程序.
我正在使用cx_freeze来部署我的应用程序.我想包含一个完整的目录,因为包含单个文件不会将它们放在一个文件夹中.我如何包含文件夹?
我遇到了cx_Freeze
运行冻结应用程序的问题(工作正常解冻).
运行程序时,会产生以下回溯:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/cx_Freeze/initscripts/Console.py", line 27, in <module>
exec code in m.__dict__
File "PythonApp/mainframe.py", line 3, in <module>
File "/usr/local/lib/python2.7/site-packages/dbus/__init__.py", line 103, in <module>
from dbus._dbus import Bus, SystemBus, SessionBus, StarterBus
File "/usr/local/lib/python2.7/site-packages/dbus/_dbus.py", line 39, in <module>
from dbus.bus import BusConnection
File "/usr/local/lib/python2.7/site-packages/dbus/bus.py", line 39, in <module>
from dbus.connection import Connection
File "/usr/local/lib/python2.7/site-packages/dbus/connection.py", line 27, in <module>
import threading
File "/usr/local/lib/python2.7/threading.py", line 44, in <module>
module='threading', message='sys.exc_clear')
File "/usr/local/lib/python2.7/warnings.py", line 57, in filterwarnings …
Run Code Online (Sandbox Code Playgroud) 整整一天,我一直在尝试在Ubuntu 14.04下编译cx-Freeze并且没有运气.所以我放弃了,决定在这里问专家.
是)我有的
我试过两种方法:
从源安装
sudo python3 setup.py install
Run Code Online (Sandbox Code Playgroud)
我得到了什么
许多
MyPath/cx_Freeze-4.3.3/source/bases/Console.c:24: undefined reference to `PyErr_Print'
MyPath/cx_Freeze-4.3.3/source/bases/Console.c:24: undefined reference to `Py_FatalError'
Run Code Online (Sandbox Code Playgroud)
然后
collect2: error: ld returned 1 exit status
error: command 'i686-linux-gnu-gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
通过pip安装
sudo pip3 install cx-Freeze
Run Code Online (Sandbox Code Playgroud)
我得到了什么
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
错误:命令'i686-linux-gnu-gcc'以退出状态1失败
----------------------------------------
Cleaning up...
Command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/cx-Freeze/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-c954v7x6-record/install-record.txt --single-version-externally-managed --compile failed with …
Run Code Online (Sandbox Code Playgroud) exe
使用cx-freeze成功构建.但是当我执行exe
文件时它显示以下错误:
来自.import _methods ImportError:无法导入名称'_methods'
我目前正在使用pygame模块制作游戏.我按照以下链接指示. https://pythonprogramming.net/converting-pygame-executable-cx_freeze/
当我在使用cx_Freeze时使用cx_Freeze AttributeError 属性错误时,我已经解决了一些问题,例如KeyError KeyError:'TCL_Library'
setup.py的构建已经完成,但是当我运行游戏的exe文件时,它崩溃了Fatal Python错误:Py_Initialize:无法加载文件系统编解码器
Fatal Python error: Py_Initialize: unable to load the file system codec
Traceback (most recent call last):
File "C:\Users\jinju\AppData\Local\Programs\Python\Python35-32\lib\encodings\__init__.py", line 31, in <module>
ImportError: No module named 'codecs'
Run Code Online (Sandbox Code Playgroud)
我已经阅读过Linux内核中回答的问题(cx_Freeze:"没有名为'codecs'的模块"),但我想知道我应该如何处理Windows 10内核.
我使用通过python主页下载的Python 3.5.3,cx_Freeze-5.1-cp35-cp35m-win32.whl通过pip,pygame 1.9.3自动下载,通过pip下载whl.
setup.py文件
import cx_Freeze, os
executables = [cx_Freeze.Executable("quatris.py")]
os.environ['TCL_LIBRARY'] = r'C:\Users\jinju\AppData\Local\Programs\Python\Python35-32\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Users\jinju\AppData\Local\Programs\Python\Python35-32\tcl\tk8.6'
cx_Freeze.setup(
name = "QUATRIS",
version = '1.0',
options={"build_exe": {"packages":["pygame"], "include_files":['ab_main.wav', 'ct_main.wav', 'f3_main.wav',
'ff_main.wav', 'gta4_soviet.wav',
'h3_neverforget.wav', 'h_onefinaleffort.wav',
'm_sweden.wav', 'p1_stillalive.wav',
'p2_caramiaaddio.wav', 'smb_1-up.wav',
'smb_bump.wav', 'smb_coin.wav', 'smb_gameover.wav', …
Run Code Online (Sandbox Code Playgroud) 我已经搜索了一段时间,现在试图找到答案,但由于我缺乏编程经验,我不太了解文档,也没有足够的信心进行实验.
有人能用稍微简单的术语来描述我如何使用像Py2exe,PyInstaller,cx_freeze等程序吗?我只想让其他人(主要是朋友)能够运行我的(简单的,仅文本的)程序而无需自己下载python.如果有一种更简单的方法可以做到这一点,我也很高兴知道这一点.
运行Vista 32bit,python 2.7
问题
我试图将python文件转换为EXE文件,但是我似乎每次都遇到同样的问题,无论是CX_Freeze还是Pyinstaller.我刚刚尝试使用pyinstaller,并使用该命令创建了一个EXE文件
pyinstaller --onefile thepyfile
Run Code Online (Sandbox Code Playgroud)
一切正常.它在dist文件中创建exe.但是,当我打开exe时,它会向我显示一个命令窗口,然后快速关闭.我设法捕获错误即时通讯使用打印屏幕,它说pygame错误:无法打开图像family.jpg.我正在使用pygame模块.
我试过了什么?
Iv确保图像与我的python文件位于同一目录和相同的文件夹中.当我运行它时,我的.py工作正常,它只是exe.无论如何只是为了确保在我加入路径的路径中加载图像没有问题
os.path.join
Run Code Online (Sandbox Code Playgroud)
它再次适用于py文件,但它在exe中不起作用.我还检查了我是否正确安装了pyinstaller,它适用于其他不涉及导入图像的exe程序.我也尝试创建一个文件夹,然后使用
os.path.join(folder,file)
Run Code Online (Sandbox Code Playgroud)
但它再次在py文件中工作,但不是pyinstaller/cx_freeze exe.
线索?
当我在使用CX__freeze时,我发现pygame也无法导入图像.然而它给了我一个更大的错误案例,不确定它是否有用但它可能是一个线索?
请帮忙
我已经遇到这个问题超过5个星期了,我迫切需要帮助.
一些代码
这是我导入图像的方式(再次在py文件中工作但不在exe文件中)
family_image = pygame.image.load(os.path.join('folder',"family.jpg")).convert()
Run Code Online (Sandbox Code Playgroud)
如果需要继承我的cx_Freeze setup.py,这也使exe文件仍然给我图像不能加载错误.
import cx_Freeze
import sys
import pygame
import random
import math
import os
os.environ['TCL_LIBRARY'] = "C:\\Program Files\\Python35\\tcl\\tc18.6"
os.environ['TK_LIBRARY'] = "C:\\Program Files\\Python35\\tcl\\tk8.6"
base = None
if sys.platform == 'win32':
base = "Win32GUI"
executables = [cx_Freeze.Executable("Treg&Shelly.py",shortcutName="Cards",shortcutDir="DesktopFolder",base = base)]
cx_Freeze.setup(
name = "HAPPY NEW YEARS",
options = {"build_exe":{"packages":["pygame","random","math"],"excludes" : ['tcl','ttk','tkinter','Tkinter'],"include_files":["family.jpg","newyears.png"]}},
version = "0.01",
description = "New Years Card",
executables = …
Run Code Online (Sandbox Code Playgroud) cx-freeze ×10
python ×10
pygame ×2
pyinstaller ×2
exe ×1
executable ×1
linux ×1
py2exe ×1
python-2.7 ×1
python-3.4 ×1
python-3.x ×1
ubuntu ×1
winreg ×1