标签: py2exe

如何将python .py文件转换为可执行文件以供跨平台使用?

我已经搜索了一段时间,现在试图找到答案,但由于我缺乏编程经验,我不太了解文档,也没有足够的信心进行实验.

有人能用稍微简单的术语来描述我如何使用像Py2exe,PyInstaller,cx_freeze等程序吗?我只想让其他人(主要是朋友)能够运行我的(简单的,仅文本的)程序而无需自己下载python.如果有一种更简单的方法可以做到这一点,我也很高兴知道这一点.

运行Vista 32bit,python 2.7

python exe py2exe pyinstaller cx-freeze

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

py2exe生成dll?

有没有办法使用py2exe或其他方法生成DLL文件而不是exe文件?

我想基本上创建一个普通函数的正常win32 dll,但这些函数将用python而不是c ++编码.

python windows dll py2exe

13
推荐指数
2
解决办法
7763
查看次数

Python应用程序的简单许可保护

虽然有很多这样的问题,请跟我说,因为我认为我的不同......

我有一个5美元的Python应用程序,我使用py2exe,py2app和Linux的源代码分发.该应用程序具有一年的许可证,因此人们需要在一年后升级到更新的版本.我想添加一些简单的许可证保护来强制执行一年的限制.由于应用程序只有5美元,我不在乎它是否容易绕过.只是有一些东西会鼓励许多用户在一年后支付5美元升级而不是忽略许可.

注意:

  • 我希望源代码易于阅读,因此不会混淆
  • 我不想编译代码或SaaS
  • 我会考虑某种许可证密钥系统,如果它非常简单,但不要求任何复杂的东西

我的第一个想法是简单地记录安装日期(例如,使用wxConfig)并在一年后使用礼貌消息禁用软件以请升级.

有没有更好的解决方案呢?

python licensing py2exe py2app

13
推荐指数
1
解决办法
8753
查看次数

使用Py2Exe编译的Python应用程序引发的UnknownTimezoneError异常

我在分发使用pytz的应用程序时遇到问题.我正在使用Py2Exe从我的Python源创建一个可执行文件.

对于我遇到的问题的简单示例,我有:pytz_test.py:

import pytz

tz_au = pytz.timezone("Australia/Sydney")
print tz_au
Run Code Online (Sandbox Code Playgroud)

在setup.py中:

from distutils.core import setup
import py2exe

setup(console=['pytz_test.py'], options={"py2exe" : { 'packages': ['pytz'], } })
Run Code Online (Sandbox Code Playgroud)

然后我运行setup.py:

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

编译可执行文件.运行创建的pytz_test.exe我得到:

Traceback (most recent call last):
  File "pytz_test.py", line 3, in <module>
    tz_au = pytz.timezone("Australia/Sydney")
  File "pytz\__init__.pyc", line 185, in timezone
pytz.exceptions.UnknownTimeZoneError: 'Australia/Sydney'
Run Code Online (Sandbox Code Playgroud)

我认为这是因为时区信息没有与可执行文件捆绑在一起,但我不确定如何实现它.

编辑:一个简单的解决方案是将zoneinfo目录从python site-packages目录中的pytz模块添加到library.zip.

为了自动执行此操作,我按照以下项目使用Google Transit数据Feed中的解决方案,来自:http: //code.google.com/p/googletransitdatafeed/source/browse/trunk/python/setup.py

我修改后的setup.py现在看起来像:

from distutils.core import setup …
Run Code Online (Sandbox Code Playgroud)

python py2exe pytz

13
推荐指数
1
解决办法
5345
查看次数

ImportError:无法导入名称RAND_egd

我试图使用py2exe创建一个exe文件.我最近更新了Python从2.7.7到2.7.10以便能够使用requests- proxies.

在更新之前一切正常但现在,最近创建的exe文件,引发了这个错误:

    Traceback (most recent call last):
  File "puoka_2.py", line 1, in <module>
    import mLib
  File "mLib.pyc", line 4, in <module>
  File "urllib2.pyc", line 94, in <module
  File "httplib.pyc", line 71, in <module
  File "socket.pyc", line 68, in <module>
ImportError: cannot import name RAND_egd
Run Code Online (Sandbox Code Playgroud)

它可能可以通过更改optionssetup.py文件来修复,但我无法弄清楚我必须在那里写什么.我试过options = {'py2exe': {'packages': ['requests','urllib2']}})但没有成功.

它作为Python脚本运行,但不作为exe.

有谁知道该怎么办?

编辑:

我试图setup.py将此导入文件归档:from _ssl import RAND_egd 它表示无法导入.

EDIT2:Setup.py:

from distutils.core import setup
import py2exe
# from _ssl import RAND_egd …
Run Code Online (Sandbox Code Playgroud)

python import ssl executable py2exe

13
推荐指数
1
解决办法
8093
查看次数

自我更新py2exe/py2app应用程序

我维护一个跨平台的应用程序,基于在Linux mac和windows上运行的PyQt.

windows和mac版本使用py2exe和py2app分发,它产生相当大的包(~40 MB).

我想添加一个"自动更新"功能,基于补丁来限制下载大小:

  • 检查http服务器上的新版本
  • 下载更新到上一版本所需的补丁
  • 应用修补程序列表并重新启动应用程序

我有一些问题:

  • 更新Windows应用程序的首选方法是什么,因为打开的文件被锁定且无法覆盖?
  • 我如何准备和应用补丁?也许使用bsdiff/pspatch

[更新]

我做了一个简单的类来使用bsdiff制作补丁,这在他们的网站上广告非常有效:我的应用程序的两个py2exe版本上的差异(~75 MB未压缩)产生44 kB补丁!对我来说足够小,我会坚持这种格式.

代码可以在pyflu的'update'包中找到,pyflu是一个很小的Python代码库.

python deployment patch py2exe

12
推荐指数
1
解决办法
3484
查看次数

ImportError:没有名为py2exe的模块

当我尝试使用py2exe中的一个py2exe示例时,我收到此错误.

File "setup.py", line 22, in ?
   import py2exe
ImportError: no module named py2exe
Run Code Online (Sandbox Code Playgroud)

我用安装程序安装了py2exe,并使用python 2.6.我从网站上下载了正确的安装程序(python 2.6 one.)

我的路径设置为C:\ Python26,我可以在命令提示符下运行普通的python脚本.

知道该怎么办?

谢谢.

编辑:我先安装了python 3.1但之后删除了它.这可能是问题吗?

python py2exe

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

我在哪里可以找到py2exe的好教程?

有人能指点我一个py2exe 的教程吗?我已经阅读了官方教程,但与使用python脚本构建可执行文件时可以使用的所有选项相比,它更加清晰.为了记录,我的python脚本使用Python 2.5.2,wxPython/wxWidgets 2.8和MySQLdb 1.2.2; 所以,如果你有py2exe的具体技巧,那些包将非常感激(是的,我见过Py2EXE和wxPython页面).

python wxpython py2exe

11
推荐指数
1
解决办法
3446
查看次数

更改生成的.exe,py2exe的图标

我一直在谷歌搜索,但没有一个结果对我有用.

这是我的安装文件

setup(
windows = [
    {
        "script": "start.py",
        "icon_resources": [(1, "myicon.ico")]
    }
],
)
Run Code Online (Sandbox Code Playgroud)

实际.exe文件的图标应为"myicon.ico".但是,这不会发生,并且是默认图标."myicon.ico"是32 x 32.

我正在使用Windows 7.

python compiler-construction py2exe

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

Py2Exe,[Errno 2]没有这样的文件或目录:'numpy-atlas.dll'

我在我的程序中包含了matplotlib,我搜索了谷歌上的numpy_atlas.dll,我似乎是地球上唯一一个有这个问题的人.

setup.py

from setuptools import setup
import py2exe

setup(console=['EulerMethod.py'])
Run Code Online (Sandbox Code Playgroud)

运行Py2Exe会导致错误

C:\(..obmitted..)>python setup.py py2exe
running py2exe
*** searching for required modules ***
*** parsing results ***
......
...obmitted...
......
*** finding dlls needed ***
error: [Errno 2] No such file or directory: 'numpy-atlas.dll'
Run Code Online (Sandbox Code Playgroud)

python numpy py2exe matplotlib

11
推荐指数
3
解决办法
9242
查看次数