标签: py2exe

在使用py2exe编译python程序时如何使用我的图标?

在编译python程序以使用我的图标时,我不知道输入setup.py文件的命令.谁能帮我?提前致谢.

python py2exe

3
推荐指数
1
解决办法
552
查看次数

py2exe和文件系统

我有一个Python应用程序.它通过执行以下操作来加载配置文件(以及各种其他文件):

_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
CONFIG_DIR = os.path.join(_path, 'conf')
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,当我用py2exe打包应用程序时,会发生不好的事情:

  File "proj\config.pyc", line 8, in <module>
WindowsError: [Error 3] The system cannot find the path specified: 'C:\\proj\
\dist\\library.zip\\conf'
Run Code Online (Sandbox Code Playgroud)

显然这是一条无效的道路......这样做的更有效的方法是什么?我不想在程序中指定绝对路径,因为它可以放在不同的文件夹中.我应该只说"如果它说文件夹名称是'library.zip',那么再向下一级到'dist'文件夹"?

请注意,我有非常嵌套的目录层次结构...例如,我有一个模块gui.utils.images,存储在"gui/utils/images.py"中,它使用其路径访问"gui/images/ok. png",例如.现在py2exe版本会尝试访问"proj/dist/library.zip/gui/images/ok.png",或其他东西,这是行不通的.

python configuration file py2exe

3
推荐指数
1
解决办法
4910
查看次数

Python win32服务

我有一个最小的python win32服务service.py,没有什么特别的:

import win32serviceutil
import win32service
import win32event

class SmallestPythonService(win32serviceutil.ServiceFramework):
    _svc_name_ = "SmallestPythonService"
    _svc_display_name_ = "display service"
    # _svc_description_='ddd'

    def __init__(self, args):      
        win32serviceutil.ServiceFramework.__init__(self, args)
        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)

    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        win32event.SetEvent(self.hWaitStop)

    def SvcDoRun(self):     
         win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE)

if __name__=='__main__':
    win32serviceutil.HandleCommandLine(SmallestPythonService)
Run Code Online (Sandbox Code Playgroud)

当我跑:

 service.py install
 service.py start 
Run Code Online (Sandbox Code Playgroud)

它工作正常,但当我service.pypy2exeto 编译文件service.exe并运行以下:

service.exe install
service.exe start [or trying to restart the service  from the Services.msc]
Run Code Online (Sandbox Code Playgroud)

我收到这条消息:

Could not start the  service name service on Local Computer. …
Run Code Online (Sandbox Code Playgroud)

python winapi windows-services py2exe

3
推荐指数
1
解决办法
5661
查看次数

从目录w/python中读取文件名

我正在尝试制作一个pygame可执行文件.我将使用以下安装文件:

from distutils.core import setup
import py2exe

setup( 
  console = [ "game.py" ],
  author = "me",
  data_files = [ ( directory, [ file_1, file_2... ] ) ]
)
Run Code Online (Sandbox Code Playgroud)

我已经让它在一个简单的游戏上工作得很好,但我想打包的游戏有> 700个图像文件.我的问题是,是否有一种简单的方法从目录中读取所有文件名,所以我不必单独列出每个文件名?

虽然有些文件按顺序编号,但大多数都有不同的根名称,因此编写一个生成相应字符串的循环不是一个选项.

谢谢

python filenames pygame distutils py2exe

3
推荐指数
2
解决办法
1万
查看次数

如何在没有Visual Studio(可能还有py2exe)的情况下将IronPython应用程序编译到EXE中?

所以我试着寻找这个答案,然后直接来询问.将IronPython应用程序/脚本集转换为EXE似乎是可行的.一个问题是,他们似乎都在谈论将IronPython与IronPython Studios(Visual Studio的Python插件)一起使用.最后我查了一下,我认为IronPython Studios基本上被用于Visual Studios(或PTVS)插件工具的Python工具所取代.这个问题是由于我的代码的结构方式,它实际上设法在将我的代码加载到IDE时使插件崩溃,从而使Visual Studios崩溃.它会这样做,直到下个月定期更新在月底或下个月初发布.所以这不是一个选项,因为我不得不在Eclipse中使用PyDev插件开发我的项目.

我之前使用py2exe将一些基本的Python应用程序转换为可执行文件,但那时我正在使用CPython解释器.我不知道如何设置py2exe来使用IronPython.是否可以使用py2exe来生成IronPython可执行文件?如果我的程序使用额外的C#程序集来完成它的工作,我怎么设置它们以便py2exe可以使用它们,我的可执行文件可以看到它们用于引用?

.net dll executable ironpython py2exe

3
推荐指数
3
解决办法
1万
查看次数

在哪里为编译的Python脚本放置配置文件?

这类似于在Python中放置配置文件的位置?,但我要问的是在Windows系统上用py2exe或类似程序编译/冻结的脚本.(即,这一个:用于任意字节的用户友好字符串的配置文件格式是什么? https://gist.github.com/1119561)

我的第一个想法是将配置文件放在与.exe相同的文件夹中,这使它有点自包含.但是,如果我将文件与.exe关联,它将从他们的目录调用,而不是它自己的,所以我需要像我如何在Python中获取当前执行文件的路径?找到配置文件.

这是最好的方法吗?或者是否有一些标准配置文件位置可供搜索,例如/sf/answers/529756251/

python py2exe configuration-files cx-freeze

3
推荐指数
1
解决办法
1820
查看次数

隐藏py2exe中的命令行对话框

嗨当我使用py2exe编译我的python脚本时,除了出现无用的命令行对话框以及我的GUI之外,一切都运行良好.有任何解决这个问题的方法吗?我有python 2.7,我的安装脚本如下所示:

from distutils.core import setup
import py2exe
setup(console=['Main.py'])  
Run Code Online (Sandbox Code Playgroud)

请帮忙!

python tkinter py2exe

3
推荐指数
1
解决办法
3948
查看次数

如何使用py2exe更正TCL_LIBRARY和TK_LIBRARY

我制作了一个slideshow.py文件,用Tkinter小部件显示一些照片修正,它在我的windows和linux上完美运行.为了让它在没有安装python和tcl的Windows上运行,我使用py2exe将其编译成win32可执行文件,setup.py很简单:

from distutils.core import setup
import py2exe
setup(windows=["slideshow.py"])
Run Code Online (Sandbox Code Playgroud)

然后我运行"python setup.py py2exe",它在c:\ Users\d2xia\ccm_wa\utils\tfps \和"tcl","library.zip","slideshow.exe"中生成一个"dist"文件夹,等等.

当我运行slideshow.exe时出错:

Traceback (most recent call last):
  File "slideshow.py", line 45, in <module>
  File "Tkinter.pyc", line 1685, in __init__
_tkinter.TclError: Can't find a usable init.tcl in the following directories: 
    C:/Users/d2xia/ccm_wa/utils/tfps/lib/tcl8.5 C:/Users/d2xia/ccm_wa/utils/tfps/lib/tcl8.5 C:/Users/d2xia/ccm_wa/utils/lib/tcl8.5 C:/Users/d2xia/ccm_wa/utils/tfps/library C:/Users/d2xia/ccm_wa/utils/library C:/Users/d2xia/ccm_wa/utils/tcl8.5.11/library C:/Users/d2xia/ccm_wa/tcl8.5.11/library
Run Code Online (Sandbox Code Playgroud)

tcl8.5和tk8.5实际上位于"tcl"文件夹下,但似乎py2exe生成的exe仍然看起来在"lib"或"library"下,似乎它没有设置正确的TCL_LIBRARY和TK_LIBRARY.

即使我将"tcl"重命名为"lib",它仍会得到相同的错误.

set TCL_LIBRARY=c:\Users\d2xia\ccm_wa\utils\tfps\dist\tcl\tcl8.5\
set TK_LIBRARY=c:\Users\d2xia\ccm_wa\utils\tfps\dist\tcl\tk8.5\
Run Code Online (Sandbox Code Playgroud)

然后slideshow.exe生成一些新错误:

c:/Users/d2xia/ccm_wa/utils/tfps/dist/tcl/tcl8.5/init.tcl: version conflict for package "Tcl": have 8.5.11, need exactly 8.5.2
version conflict for package "Tcl": have 8.5.11, need exactly 8.5.2
    while executing
"package require …
Run Code Online (Sandbox Code Playgroud)

python tcl py2exe

3
推荐指数
1
解决办法
8315
查看次数

使用VTK的Python可执行文件... pyinstaller,py2exe,cx_freeze等

我使用pyqt在python中构建了一个gui,它导入了VTK.我没有运气得到py2exe,pyinstaller cx_freeze等与它一起工作......我得到一个错误说下面的内容使用pyinstaller:

vtk.__helper.LinkError: No module named vtkFilteringPythonSIP
Run Code Online (Sandbox Code Playgroud)

我已经设法使用pyinstaller制作不包含vtk代码的工作可执行文件,所以我现在倾向于此,但是如果有人可以帮我编写代码来实现这个目的:http://www.vtk.org/ Wiki/VTK/Examples/Python/Widgets/EmbedPyQt代码作为可执行文件工作然后我将永远感激,但它已经完成.我已经尝试将它抱怨的文件添加到pyinstaller钩子但仍然没有运气.是否有旧的/开发版本已修复此错误?虽然我找到了同一条船上的人,但在信息高速公路上找不到任何解决方案.我正在使用最新版本的Python(X,Y).

python pyqt py2exe pyinstaller vtk

3
推荐指数
1
解决办法
859
查看次数

Py2Exe openpyxl importerror

我有一个依赖于openpyxl的python应用程序,并且在通过python解释器运行时效果很好.但是,在使用py2exe创建exe时.exe是生成的,但当我点击它时,我收到一个错误,并生成以下日志:

Traceback (most recent call last):
File "excelTest.py", line 1, in <module>
File "openpyxl\__init__.pyc", line 30, in <module>
File "openpyxl\workbook\__init__.pyc", line 5, in <module>
File "openpyxl\workbook\workbook.pyc", line 16, in <module>
File "openpyxl\writer\write_only.pyc", line 23, in <module>
File "openpyxl\writer\excel.pyc", line 36, in <module>
File "openpyxl\packaging\extended.pyc", line 4, in <module>
ImportError: cannot import name __version__
Run Code Online (Sandbox Code Playgroud)

任何人都可以让我知道问题是什么以及如何解决它.这是我的setup.py:

from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
setup(windows=['excelTest.py'], options={"py2exe": {"includes": ["openpyxl","os","ntpath","Tkinter","tkFileDialog","sys"]}})
Run Code Online (Sandbox Code Playgroud)

python error-handling executable py2exe openpyxl

3
推荐指数
1
解决办法
1739
查看次数