标签: py2exe

导入整个 Python 标准库

我需要一种方法将整个 Python 标准库导入到我的程序中。

虽然这似乎是个坏主意,但我想这样做是因为 py2exe 会将整个标准库与我的程序打包在一起,这样我的用户就可以在我给他们的 shell 中从它导入。

是否有捷径可寻?

加分项:我希望此操作不会导入我已安装在站点包中且未随 Python 提供的包。然而,这并不重要。

python import packaging py2exe

5
推荐指数
1
解决办法
2071
查看次数

pyinstaller与一个非平凡的目录结构

我写了一个简单的Web应用程序,内嵌Web服务器(龙卷风),数据库(sqlalchemy现在使用sqlite),以及整个shabang.我想将它全部捆绑到一个包含可以运行的单个exe的自包含目录中.部署方案绝对需要单击安装并像这样运行.

我完全没有尝试让py2exe或pyinstaller捆绑我的代码.问题与目录结构和布局直接相关,如下所示.我不想更改目录布局.有人可以建议我如何使用py2exe或pyinstaller或任何其他合适的工具?

project/
|-> main.py

|-> libs/
    |-> tornado/ (The full git rep as a submodule)
        |-> tornado/ (The actual package)
    |-> sqlalchemy/

|-> src/
    |-> support-1.py
    |-> support-2.py

|-> static/
    -> js/
    -> img/
    -> css/

|-> templates/
Run Code Online (Sandbox Code Playgroud)

python windows py2exe pyinstaller

5
推荐指数
1
解决办法
968
查看次数

如何在使用py2exe时包含ui和图像文件?

我正在使用Python 2.7和PySide 1.1.2开发一个项目.我的代码在我的GNU/Linux上没有任何问题,但我想分发Windows(7和8).我不能指望用户安装Python和PySide,所以我决定使用py2exe(我也试过cx_freeze和pyinstaller).

首先,这是我的文件树:GitHub上的我的项目

我创建了一个setup.py,这里是:

# -*- coding: utf-8 -*-

from distutils.core import setup
import py2exe

setup(
    console=['bin/metusuite.py'],
    name='metusuite',
    version='0.1',
    author='H. Gökhan Sar?',
    author_email='me@th0th.me',
    packages=['metusuite_libs'],
    package_dir={'metusuite_libs': 'metusuite_libs'},
    package_data={'metusuite_libs': ['ui/*', 'images/*']},
    scripts=['bin/metusuite.py'],
    url='https://github.com/th0th/metusuite/',
    license='LICENSE.txt',
    description='METU Suite.',
    long_description=open('README.md').read(),
)
Run Code Online (Sandbox Code Playgroud)

我跑的时候

setup.py py2exe
Run Code Online (Sandbox Code Playgroud)

它成功地在'dist'文件夹中构建了metusuite.exe,但是,由于应用程序依赖于外部用户界面文件 - 使用Qt Designer创建 - 并且找不到它们,我收到错误:

Designer: An error has occurred while reading the UI file at line 1, column 0: Premature end of document.
Traceback (most recent call last):
  File "metusuite.py", line 38, in <module>
  File "metusuite_libs\msCafeteriaMenu.pyc", line …
Run Code Online (Sandbox Code Playgroud)

windows py2exe pyside

5
推荐指数
1
解决办法
4530
查看次数

Python py2exe窗口显示(tkinter)

我正在尝试用py2exe创建一个exe.该程序使用Tkinter显示一个类似弹出窗口.问题是,当我像这样运行设置时一切正常:

setup(windows = [{'script': "msg.py"}], zipfile = None)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试制作一个单文件时它失败了:

setup(windows = [{'script': "msg.py"}], zipfile = None, options = {'py2exe': {'bundle_files': 1, 'compressed': True}})
Run Code Online (Sandbox Code Playgroud)

实际上最终的exe运行没有问题,但它没有显示任何窗口.我已经读过在Windows 7上可能存在bundle_files = 1的问题,但我也尝试了bundle_files = 2具有相同的效果.这是我的msg.py脚本:

from win32gui import FindWindow, SetForegroundWindow
from Image import open as iopen
from ImageTk import PhotoImage
from Tkinter import Tk, Label
from threading import Timer
from subprocess import Popen
import os

def Thread(t, fun, arg=None):
    if arg<>None: x = Timer(t, fun, arg)
    else: x = Timer(t, fun)
    x.daemon = True
    x.start()

def …
Run Code Online (Sandbox Code Playgroud)

python tkinter py2exe

5
推荐指数
2
解决办法
5925
查看次数

Python - GUI2EXE - AttributeError: 'module' 对象没有属性 'Popen'

我使用 Python 2.7 和 py2exe,最近我下载了 gui2exe 最新版本 (5.3)。但是当我尝试执行该gui2exe.py文件时,它给了我一个错误:

AttributeError: 'module' object has no attribute 'Popen'
Run Code Online (Sandbox Code Playgroud)

我研究了很多,但从未得到任何解决方案。

请帮忙。

python user-interface py2exe python-2.7

5
推荐指数
1
解决办法
8101
查看次数

如何使用py2exe将我的scrapy蜘蛛构建到exe文件?

我使用scrapy创建一个项目并在"spiders"文件夹中添加我自己的蜘蛛,比如"spider_us.py",我想构建一个exe文件,可以在其他计算机上执行而无需安装scrapy.

当我按照py2exe的说明操作时,我在同一文件夹中创建一个新文件"Setup.py",其中包含以下内容:

from distutils.core import setup
import py2exe

setup(console = ["spider_us.py"])
Run Code Online (Sandbox Code Playgroud)

然而,它不起作用,因为当我运行我的蜘蛛时,我使用命令"scrapy crawl spider_us"而不是直接在"spiders"文件夹中运行文件"spider_us.py".

怎么可能构建整个蜘蛛程序(当我使用"scrapy startproject XXX"时通过scrapy自动创建)到exe文件,而不仅仅是"spiders"子文件夹中的蜘蛛文件(在我的例子中是"spider_us.py") .

任何人给出一些建议或帮助,欢迎任何评论.非常感谢.

python exe py2exe scrapy

5
推荐指数
1
解决办法
2578
查看次数

如何在Py2exe中包含psutil的组件py2exe找不到?

我在Windows 7上使用py2exe来使用psutil制作应用程序.我正在使用python 2.7.我正在制作单个文件可执行文件.当我尝试用psutil编译python python程序时,它接近结尾说:

The following modules appear to be missing
['_psutil_bsd', '_psutil_linux', '_psutil_osx', '_psutil_posix', '_psutil_sunos', '_scproxy', '_sysconfigdata', 'builtins']
Run Code Online (Sandbox Code Playgroud)

但是,该程序编译良好.当我运行编译的程序时,它崩溃并生成一个日志文件:

回溯(最近一次调用最后一次):文件"TaskManager.py",第27行,在文件"zipextimporter.pyc",第82行,在load_module文件"psutil__init __.pyc",第135行,在文件"zipextimporter.pyc"中,行82,在load_module文件"psutil_psmswindows.pyc",第14行,在文件"zipextimporter.pyc",第98行,在load_module中导入错误:MemoryLoadLibrary加载失败_psutil_mswindows.pyd

我已尝试在设置的选项部分列出:

"includes": ["_psutil_mswindows.pyd"]
Run Code Online (Sandbox Code Playgroud)

以及公正

"includes": ["psutil"]
Run Code Online (Sandbox Code Playgroud)

我也尝试将所有列出的模块py2exe列为缺失.除了包含没有做任何事情的psutil之外,py2exe找不到这些文件.

关于这个主题在线有相当多的类似问题,但没有一个有很好的答案(如果有任何答案),许多错误都不是我的问题.

更新:奇怪的是,我在py2exe的构建目录的build\bdist.win32\winexe\collect-2.7中找到了_psutil_mswindows.pyd.我想由于某种原因它没有得到正确的包装.

python module py2exe include

5
推荐指数
1
解决办法
2453
查看次数

PyInstaller和Python3.6 - 元组索引

我写了一个Python程序,大多数将要运行它的人都是Windows用户.我尝试在2个不同的设备上使用pyinstaller和py2exe,一个使用Windows,另一个使用arch-linux.

我使用pip3安装pyinstaller --no-cache不止一次重新安装它

我总是得到同样的错误:

    sudo pyinstaller --windowed --onefile test.py
49 INFO: PyInstaller: 3.2
49 INFO: Python: 3.6.0
50 INFO: Platform: Linux-4.8.13-1-ARCH-x86_64-with-arch
51 INFO: wrote /home/XXXXX/test.spec
52 INFO: UPX is not available.
53 INFO: Extending PYTHONPATH with paths
['/home/XXXXX', '/home/XXXXX']
54 INFO: checking Analysis
54 INFO: Building Analysis because out00-Analysis.toc is non existent
54 INFO: Initializing module dependency graph...
57 INFO: Initializing module graph hooks...
58 INFO: Analyzing base_library.zip ...
Traceback (most recent call last):
  File "/usr/bin/pyinstaller", line 11, in <module> …
Run Code Online (Sandbox Code Playgroud)

python executable py2exe pyinstaller

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

如果可能,如何为python 3.5+,3.6构建.exe?

现在是否有一个简单的协议来从 python 3.5+ 构建 .exe,使用模块 pyqtgraph、qt5、theano、pymc3、numpy、scipy、os 和 sys,并打开一个存储在“.ui”文件中的简单 GUI?我浪费了几个小时,最终没能做出一个(w7-64 位)。帮助 !

py2exe 的初步失败:我首先为 python 3 安装了 py2exe,但事实证明这与我的 python 3.6 不兼容,所以我降级到 python 3.5……得到了一堆错误。然后我去了论坛并尝试了建议的治疗方法但失败了(我对 Windows 感到不安),另一种选择是降级到 python 3.4……所以我降级到 python 3.4 以得到一个关于缺少“msvcr100.dll”的错误,我尝试在论坛上安装以下说明,但默认情况下我没有修改系统目录的权限......当我最终获得此权限时,结果证明“regsvr32”命令失败(这不是 32 位的吗?但是没有'regsvr64'...)。以下情节描述如下。


2017 年 8 月 23 日下午 1 点更新:

下一步是什么 ?


9 月 2 日下午 2 点更新:

经过多集之后,我最终设法使用 pyinstaller 构建了一个 .exe。 …

python py2exe pyinstaller cx-freeze pynsist

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

Python Windows 服务 pyinstaller 错误

我用 Python 创建了一个程序。它的任务是检查一些日志并执行一些活动。

Reg_Version.py

class RegisterService:
.
.

    def performAction(self):
        self.__logFileSizeCheck()
        self.__getHostName()
        self.__deteleFiles()
        self.__createFiles()
.
.

class Service(win32serviceutil.ServiceFramework):
    _svc_name_ = '_test'
    _svc_display_name_ = '_Service Template'
    def __init__(self, *args):
        win32serviceutil.ServiceFramework.__init__(self, *args)
        self.log('init')
        self.stop_event = win32event.CreateEvent(None, 0, 0, None)
    def log(self, msg):
        servicemanager.LogInfoMsg(str(msg))
    def sleep(self, sec):
        win32api.Sleep(sec*1000, True)
    def SvcDoRun(self):
        self.ReportServiceStatus(win32service.SERVICE_START_PENDING)
        try:
            self.ReportServiceStatus(win32service.SERVICE_RUNNING)
            self.log('start')
            self.start()
            self.log('wait')
            win32event.WaitForSingleObject(self.stop_event, win32event.INFINITE)
            self.log('done')
        except Exception, x:
            self.log('Exception : %s' % x)
            self.SvcStop()
    def SvcStop(self):
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        self.log('stopping')
        self.stop()
        self.log('stopped')
        win32event.SetEvent(self.stop_event)
        self.ReportServiceStatus(win32service.SERVICE_STOPPED)
    # to be overridden
    def start(self): …
Run Code Online (Sandbox Code Playgroud)

python windows service py2exe pyinstaller

5
推荐指数
0
解决办法
714
查看次数